将drawing.bitmap转换为windows.controls.image

时间:2017-01-10 21:48:01

标签: wpf image bitmap type-conversion

我正在从智能卡上读取数据。 该数据也包含图片。 用于在类ReadData中获取图片的代码:

public Bitmap GetPhotoFile()
    {
        byte[] photoFile = GetFile("photo_file");
        Bitmap photo = new Bitmap(new MemoryStream(photoFile));
        return photo;
    }

xaml中的代码:

imgphoto = ReadData.GetPhotoFile();

生成错误:
无法隐式转换类型' System.Drawing.Bitmap'到' System.Windows.Controls.Image'

这方面最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

不要从该文件创建System.Drawing.BitmapBitmap是WinForms,而不是WPF。

相反,请创建一个WPF BitmapImage

public ImageSource GetPhotoFile()
{
    var photoFile = GetFile("photo_file");
    var photo = new BitmapImage();

    using (var stream = new MemoryStream(photoFile))
    {
        photo.BeginInit();
        photo.CacheOption = BitmapCacheOption.OnLoad;
        photo.StreamSource = stream;  
        photo.EndInit();
    }

    return photo;
}

然后将返回的ImageSource分配给Image控件的Source属性:

imgphoto.Source = ReadData.GetPhotoFile();