محل تبلیغات شما سرور ایران

  1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، لازم است که ثبت نام کنید.

آموزش ذخیره و بازیابی تصاویر در سی شارپ

شروع موضوع توسط sattar01 ‏22/7/17 در انجمن C #C++

  1. عضو جدید

    تاریخ عضویت:
    ‏22/7/17
    ارسال ها:
    2
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    جنسیت:
    مرد
    حرفه:
    طراحی سایت - سئو و بهینه سازی سایت
    محل سکونت:
    اصفهان
    وب سایت:
    1- ایجاد دیتابیس و جدول
    اولین کاری که باید بکنیم اینه که یه دیتابیس به اسم pictures ایجاد میکنیم و داخل قسمت table یه جدول ایجاد میکنیم. برای ایجاد جدول نیاز به 2 ستون داریم. یه آیدی از نوع int و یکی ستون هم برای خود عکس از نوع varbinary(MAX) .ستون ID رو خاصیت is identity رو yes میکنیم که باهر بار ذخیره عکس یکی بهش اضافه بشه. بعد جدول رو با اسم myPic ذخیره میکنیم . دیگه کاری با دیتابیس نداریم.
    [​IMG]
    2- ایجاد دیتاست و متصل کردن آن به دیتابیس
    کار بعدی که باید انجام بدیم اینه که یک دیتاست تو برنامه ایجاد کنیم و وصلش کنیم به دیتابیس. در نهایت جدول رو می کشیم و داخل پنجره دیتاست رها میکنیم.

    کسانی که با این روش آشنایی ندارن بهتره فیلم رو ببینن که بهتر متوجه بشن.
    [​IMG]
    3- طراحی فرم
    برای فرم به 2 تا pictureBox نیاز داریم یکی برای نمایش قبل از ذخیره یکی هم برای نمایش بعد از لود کردن. 3 تا button نیاز داریم یکی برای انتخاب عکس و نمایشش تو pictureBox و یکی برای ذخیره عکس و بعدی برای بازیابی عکس از دیتابیس و یک openFileDialog برای انتخاب عکس
    [​IMG]
    4- کد دکمه انتخاب عکس
    کد:
     openFileDialog1.Filter = "jpg Files |*.jpg|PNG FIles |*.png";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
        pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
    ابتدا openFileDialog رو فیلتر کردیم که فایل فقط با فرمت عکس قبول کنه و خط بعد شرط گذاشتیم که اگر کاربر عکسی رو انتخاب کرد در pictureBox نمایشش بده.

    5- کد دکمه ذخیره
    کد:
     Bitmap bmp = (Bitmap)pictureBox1.Image;
    MemoryStream ms = new MemoryStream();
    bmp.Save(ms, bmp.RawFormat);
    myPicTableAdapter.Insert(ms.GetBuffer());
    MessageBox.Show("image saved");
    تصویر رو از pictureBox دریافت کنه و در یک متغیر از نوع Bitmap با نام Bmp ذخیره کنه. خط بعد یک متغیر از نوع memoryStream با نام ms ایجاد کردیم . خط بعدی عکسی که داخل bmp هست رو در ms ذخیره کردیم. سپس در دیتابیس ذخیره کردیم و در نهایت پیغام چاپ کردیم که ذخیره تصاویر با موفقیت ذخیره شد.

    6- کد دکمه بازیابی عکس
    کد:
     myPicTableAdapter.Fill(dataSet1.myPic);
      Image img;
      byte[] imageByte =(byte[]) dataSet1.myPic.Rows[0]["images"];
      MemoryStream ms = new MemoryStream(imageByte);
      img = Image.FromStream(ms);
      pictureBox2.Image = img;
    ابتدا جدول تصاویر رو select کردیم. بعد یه متغیر از نوع image با نام img ایجاد کردیم. خط بعد تصویر فراخوانی شده در جدول رو در یک آرایه از نوع بایت ذخیره کردیم. خط بعد یک متغیر از نوع memoryStream ایجاد کردیم که آرایه ای که تصویر به صورت بایت ها درونش قرار داره رو به عنوان پارمتر بهش پاس میدیم. و خط بعد میگیم تصویر رو از stream بگیر و در متغیری از نوع image درست کردیم بریز و در نهایت نمایشش بده.

    من توضیحات رو به صورت اجمالی بیان کردم. با دیدن فقط کاربران عضو می توانند لینک ها را مشاهده کنند. برای عضویت اینجا کلیک کنید. میتونید تمام مراحل و توضیحات بیشتر رو مشاهده کنید.