【问题标题】:Get bitmapsource from a picturebox in C#从 C# 中的图片框中获取位图源
【发布时间】:2017-04-15 06:08:19
【问题描述】:
我有一个名为 picture 的图片框
我想获取这个图片框的图像并将其保存为位图源
BitmapSource myPic;
myPic = picture.Image;
但我收到此错误:
严重性代码描述项目文件行抑制状态
错误 CS0029 无法将类型“System.Drawing.Image”隐式转换为“System.Windows.Media.Imaging.BitmapSource”
【问题讨论】:
标签:
c#
bitmap
bitmapsource
【解决方案2】:
使用这个方法:
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;
}