نمایش نتایج 1 تا 3 از 3

نام تاپیک: پر کردن کنترل Image از داده های Binary موجود در بانک

  1. #1
    کاربر دائمی آواتار B.I.O.H.A.Z.A.R.D
    تاریخ عضویت
    تیر 1388
    محل زندگی
    قزوین
    پست
    198

    پر کردن کنترل Image از داده های Binary موجود در بانک

    سلام

    من با استفاده از این کلاس عکس ها رو تبدیل به بایت میکنم و در دیتابیس ذخیره میکنم (تا اینجا مشکلی نیست)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Drawing;
    using System.IO;
    namespace SavePhotoInDB
    {
    class Convertor
    {
    public static Image ConvertByteArrayToImage(byte[] myByteArray)
    {
    MemoryStream ms = new MemoryStream(myByteArray, 0, myByteArray.Length);
    ms.Write(myByteArray, 0, myByteArray.Length);
    return Image.FromStream(ms, true);
    }

    public static byte[] ReadFile(string sPath)
    {
    byte[] data = null;
    FileInfo FInfo = new FileInfo(sPath);
    long numOfBytes = FInfo.Length;
    FileStream FStream = new FileStream(sPath, FileMode.Open, FileAccess.Read);
    BinaryReader br = new BinaryReader(FStream);
    data = br.ReadBytes((int)numOfBytes);
    return data;
    }
    }
    }



    حالا میخوام از دیتابیس اون مقدار رو بخونم و تبدیل به عکس کنم و اون عکس رو بریزم توی Source مربوط به کنترل Image خودم.

    این رو هم با استفاده از این تکه کد انجام میدادم (توی WinForms)

    SqlDataReader DR = SCM.ExecuteReader();
    DR.Read();
    byte[] img = (byte[])DR["pic"];
    Image i = Convertor.ConvertByteArrayToImage(img);
    pictureBox1.Image = i;


    ولی خط آخر توی WPF جواب نمیده. یعنی نمیشه سورس کنترل Image رو اینطوری پر کرد! اگه ممکنه دوستان راهنمایی کنید. پیشاپیش ممنون

  2. #2
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: پر کردن کنترل Image از داده های Binary موجود در بانک

    سلام
    ببین این کارت رو راه میندازه
    تست نکردم چون الان Vs ندارم

    public BitmapImage ConvetToImage(byte[] buffer)
    {
    if (buffer.Length == 0)
    {
    return null;
    }

    BitmapImage res = new BitmapImage();
    res.BeginInit();
    res.StreamSource = new System.IO.MemoryStream(buffer);
    res.EndInit();
    return res;

    }

    حالا میتنوی اینو بنویسی

    SqlDataReader DR = SCM.ExecuteReader();
    DR.Read();
    byte[] img = (byte[])DR["pic"];
    image1.Source = ConvetToImage(img);

  3. #3
    کاربر دائمی آواتار B.I.O.H.A.Z.A.R.D
    تاریخ عضویت
    تیر 1388
    محل زندگی
    قزوین
    پست
    198

    نقل قول: پر کردن کنترل Image از داده های Binary موجود در بانک

    با تشکر از پاسختون، مشکل حل شد.

    فقط یه نکته کوچیک هم هست، میگم شاید بدرد بقیه بخوره. چون عکس بصورت Binary در دیتابیس ذخیره شده، وقتی میخوایم بریزیمش توی متغیر byte[] باید از ToArray() استفاده کنیم.

تاپیک های مشابه

  1. سوال: چک کردن کنترل image
    نوشته شده توسط hyl_piano در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 3
    آخرین پست: چهارشنبه 16 دی 1388, 15:17 عصر
  2. Update کردن یه جدول توسط داده های جدول دیگر
    نوشته شده توسط Mahdi_20 در بخش SQL Server
    پاسخ: 11
    آخرین پست: سه شنبه 05 آبان 1388, 10:19 صبح
  3. پر کردن دوتا Combobox با داده های بانک
    نوشته شده توسط مهدی رحیم زاده در بخش C#‎‎
    پاسخ: 5
    آخرین پست: یک شنبه 21 مرداد 1386, 11:20 صبح
  4. مخفی کردن یک ستون از داده های Gridview
    نوشته شده توسط javad3151 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: چهارشنبه 20 دی 1385, 10:07 صبح
  5. پر کردن کنترل Image از یک فیلد Image
    نوشته شده توسط rahami در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: شنبه 30 مهر 1384, 10:52 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •