我有一個PictureBox稱爲picture
我想這個圖片框的圖像,並將其保存爲的BitmapSource得到C#中的圖片框的BitmapSource
BitmapSource myPic;
myPic = picture.Image;
,但我得到這個錯誤:
嚴重性代碼說明項目文件行抑制狀態 錯誤CS0029無法將類型'System.Drawing.Image'隱式轉換爲'System.Windows.Media.Imaging.BitmapSource'
我有一個PictureBox稱爲picture
我想這個圖片框的圖像,並將其保存爲的BitmapSource得到C#中的圖片框的BitmapSource
BitmapSource myPic;
myPic = picture.Image;
,但我得到這個錯誤:
嚴重性代碼說明項目文件行抑制狀態 錯誤CS0029無法將類型'System.Drawing.Image'隱式轉換爲'System.Windows.Media.Imaging.BitmapSource'
您需要將系統m.Drawing.Image到System.Drawing.Bitmap,然後將其轉換爲BitmapSource。
你可以選擇這種解決方案之一: fast converting Bitmap to BitmapSource wpf
使用這種方法:
public BitmapSource ImageToBitmapSource(System.Drawing.Image image)
{
var bitmap = new System.Drawing.Bitmap(image);
var bitSrc =BitmapToBitmapSource(bitmap);
bitmap.Dispose();
bitmap = null;
return bitSrc;
}
public BitmapSource BitmapToBitmapSource(System.Drawing.Bitmap source)
{
BitmapSource bitSrc = null;
var hBitmap = source.GetHbitmap();
try
{
bitSrc = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
hBitmap,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
}
catch (Win32Exception)
{
bitSrc = null;
}
return bitSrc;
}