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

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

سلام
من یه 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!
کسی میتونه کمکم کنه که بتونم این تصویر رو به آرایه ای از رشته های باینری تبدیل کنم ؟





آخرین ویرایش: 09-11-2020 ???? 12:11، توسط رضا رمضانپور
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 کار میکنم نمیتونم از این دوتا استفاده کنم و جواب نگرفتم .

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.