سوال

تبدیل system.windows.forms.picture به byte[] در wpf

بازدید 36.7k پست ها 4 آخرین فعالیت 2 سال پیش
0
2

سلام
من یه WindowsFormsHost دارم که در واقع یه باکسه که توش تصویر اثر انگشت بعد از اسکن نشون داده میشه و Xaml اون به صورت زیره:

<WindowsFormsHost x:Name="form" Cursor="Pen"  HorizontalAlignment="Left" Height="115" Margin="40,191,0,0" VerticalAlignment="Top" Width="108" MouseDown="form_MouseDown"/>

کدم هم به صورت زیر هست :

public win_add_edit_personel()
        {
            InitializeComponent();
            pbImageFrame = new PictureBox();
            form.Child = pbImageFrame;
        }

با این کار من یه picturebox از نوع system.windows.forms داخل wpf دارم . چون نمیتونستم image رو به اسکنر بشناسونم مجبور شدم ازین راه استفاده کنم .

تصویر به درستی بعد از اسکن نشون داده میشه . حالا من میخوام با زدن دکمه ثبت این تصویر داخل دیتا بیس نشون داده بشه .یعنی این عکس به آرایه ای از بایت تبدیل بشه . جست و جو کردم کد زیر رو پیدا کردم :

public byte[] ImageToByteArray(System.Drawing.Image imageIn)
        {
            using (var ms = new MemoryStream())
            {
                imageIn.Save(ms, imageIn.RawFormat);
                return ms.ToArray();
            }
        }

و به صورت زیر اونو میخوام وارد دیتا بیسم کنم :

p.personelfingerpic = ImageToByteArray(pbImageFrame);

اما خطای زیر داده میشه .
cannot convert from system.windows.forms.picturebox to system.drawing.image!
کسی میتونه کمکم کنه که بتونم این تصویر رو به آرایه ای از رشته های باینری تبدیل کنم ؟





آخرین ویرایش: 18-05-2018 ساعت 23:23، توسط bivatan

4 پاسخ

1

سلام. میتوم بپرسم باینری رو واسه چی میخوای؟ برای ذخیره کردن؟

0

سلام علیکم . بله برای ذخیره در دیتابیس

0

خدمت شما

public byte[] ImageToByteArray(System.Drawing.Image imageIn)
{
   using (var ms = new MemoryStream())
   {
      imageIn.Save(ms,imageIn.RawFormat);
      return  ms.ToArray();
   }
}

و

public static byte[] converterDemo(Image x)
{
    ImageConverter _imageConverter = new ImageConverter();
    byte[] xByte = (byte[])_imageConverter.ConvertTo(x, typeof(byte[]));
    return xByte;
}
0

دستت درد نکنه . ولی من این دوتا رو نوشتم و گفتم که چون با WindowsFormsHost کار میکنم نمیتونم از این دوتا استفاده کنم و جواب نگرفتم .

این سوال حل نشده است!

این سوال هنوز حل نشده یا به پاسخ بهتری نیاز دارد. برای پاسخ به این سوال کافیست وارد حساب کاربری خود شوید.