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

نام تاپیک: تبدیل system.windows.forms.picturBox به [ ] byte در wpf

  1. #1

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

    سلام
    من یه WindowsFormsHost به نام form دارم که در واقع یه باکسه که توش تصویر اثر انگشت بعد از اسکن نشون داده میشه و 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 به نام pbImageFrame از اون WindowsFormsHost درست کردم .
    با این کار من یه picturebox از نوع system.windows.forms داخل wpf دارم . چون نمیتونستم image رو مستقیم به اسکنر بشناسونم مجبور شدم ازین راه استفاده کنم .

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

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






    آخرین ویرایش به وسیله bivatan : شنبه 29 اردیبهشت 1397 در 12:31 عصر

  2. #2

    نقل قول: تبدیل system.windows.forms.picturBox به [ ] byte در wpf

    کدی که تصویر را در پیکچرباکس نمایش میدید را بزارید.

  3. #3

    نقل قول: تبدیل system.windows.forms.picturBox به [ ] byte در wpf

    این کد مال خود sdk اثر انگشت هست :

    private void DrawCapturedImages(UFScanner Scanner, PictureBox p)
    {
    Graphics g = pbImageFrame.CreateGraphics();
    System.Drawing.Rectangle rect = new System.Drawing.Rectangle(0, 0, pbImageFrame.Width, pbImageFrame.Height);

    try
    {
    // 1. DrawCaptureImageBuffer
    // Scanner.SaveCaptureImageBufferToBMP("C:\\image.bmp ");
    Scanner.DrawCaptureImageBuffer(g, rect, cbDetectCore.IsChecked.Value);
    // 2. GetCaptureImageBuffer
    // Bitmap bitmap;
    /// int Resolution;
    // Scanner.GetCaptureImageBuffer(out bitmap, out Resolution);
    // pbImageFrame.Image = bitmap;
    }
    finally
    {

    }
    }





    این کد هم برای ذخیره عکس با path توی کامپیوتر هست :

    private void btnSaveImage_Click(object sender, RoutedEventArgs e)
    {

    UFScanner Scanner;
    UFS_STATUS ufs_res;

    int nFilterIdx = 0;

    if (!GetGetCurrentScanner(out Scanner))
    {
    return;
    }

    Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
    dlg.Filter = "Bitmap files (*.bmp)|*.bmp|WSQ files (*.wsq)|*.wsq||";
    dlg.DefaultExt = "bmp";
    //bool? ss = dlg.ShowDialog();
    if (dlg.ShowDialog() != true)
    {
    return;
    }
    else
    {
    nFilterIdx = dlg.FilterIndex;
    }

    if (nFilterIdx == 1)
    {
    ufs_res = Scanner.SaveCaptureImageBufferToBMP(dlg.FileName);
    if (ufs_res == UFS_STATUS.OK)
    {
    tbxMessage.AppendText("UFScanner Image Buffer is saved to " + dlg.FileName + "\r\n");
    }
    }
    else if (nFilterIdx == 2)
    {
    ufs_res = Scanner.SaveCaptureImageBufferToWSQ(dlg.FileName, (float)2.25);
    if (ufs_res == UFS_STATUS.OK)
    {
    tbxMessage.AppendText("UFScanner Image Buffer is saved to " + dlg.FileName + "\r\n");
    }
    }


    }

  4. #4

    نقل قول: تبدیل system.windows.forms.picturBox به [ ] byte در wpf

    تو سایت https://stackoverflow.com/questions/...ng-c-sharp-wpf هم سوال پرسیدم ولی کسی جواب نداد یا دادند من چون زبانم خوب نیست نفهمیدم .
    آخرین ویرایش به وسیله bivatan : شنبه 29 اردیبهشت 1397 در 12:46 عصر

  5. #5

    نقل قول: تبدیل system.windows.forms.picturBox به [ ] byte در wpf

    از کنترل Image خود wpf به جای پیکچرباکس استفاده کنید. متد GetCaptureImageBuffer عکس را به صورت bitmap میده که میتونید با یک تبدیل ذر کنترل نمایش بدید. متد را به اینصورت اصلاح کنید:
            private void DrawCapturedImages(UFScanner scanner, System.Windows.Controls.Image p)
    {
    try
    {
    // 1. DrawCaptureImageBuffer
    // Scanner.SaveCaptureImageBufferToBMP("C:\\image.bmp ");
    //Scanner.DrawCaptureImageBuffer(g, rect, cbDetectCore.IsChecked.Value);
    // 2. GetCaptureImageBuffer
    Bitmap bitmap;
    int resolution;
    scanner.GetCaptureImageBuffer(out bitmap, out resolution);
    MemoryStream stream = new MemoryStream();
    bitmap.Save(stream, ImageFormat.Bmp);
    stream.Seek(0, SeekOrigin.Begin);
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.BeginInit();
    bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
    bitmapImage.StreamSource = stream;
    bitmapImage.EndInit();
    p.Source = bitmapImage;
    }
    finally
    {

    }
    }

  6. #6

    نقل قول: تبدیل system.windows.forms.picturBox به [ ] byte در wpf

    دستت درد نکنه مهندس. کار کرد . خیلی خیلی تشکر.فقط من نتونستم تبدیل روانجام بدم . الان با کدشما تصویر توی source کنترل image قرار گرفت ولی هنوز همون خطای قبلی رو میده .میشه بگی چطور عکس مختویات این imagebox رو به BineryData تبدیل کنم ؟
    آخرین ویرایش به وسیله bivatan : یک شنبه 30 اردیبهشت 1397 در 17:06 عصر

  7. #7

    نقل قول: تبدیل system.windows.forms.picturBox به [ ] byte در wpf

    به اینصورت تست کنید
    p.personelfingerpic =((MemoryStream)bitmapImage.StreamSource).ToArray(  );

    قبلش چک کنید استریم نال نباشه

  8. #8

    نقل قول: تبدیل system.windows.forms.picturBox به [ ] byte در wpf

    عالی. ممنون. همونی که میخواستم نتیجه داد

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

  1. پاسخ: 2
    آخرین پست: چهارشنبه 05 خرداد 1395, 10:52 صبح
  2. using System.Windows.Forms در class library
    نوشته شده توسط Kubuntu در بخش C#‎‎
    پاسخ: 4
    آخرین پست: جمعه 24 آذر 1391, 15:05 عصر
  3. سوال: اضافه کرد فایل System.Windows.Forms.dll به وب روی هاست
    نوشته شده توسط reza4359 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: یک شنبه 18 دی 1390, 19:59 عصر
  4. Windows Form Designer generated code در VS2005
    نوشته شده توسط ali2914 در بخش VB.NET
    پاسخ: 1
    آخرین پست: جمعه 01 اردیبهشت 1385, 12:50 عصر
  5. Class System.Windows.Forms.InputLanguage
    نوشته شده توسط سهراب رسولی در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: سه شنبه 07 تیر 1384, 09:56 صبح

برچسب های این تاپیک

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

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