将位图转换为BitmapSource

时间:2011-02-25 19:13:52

标签: .net wpf bitmap bitmapsource

我将位图转换为bitmapsource时遇到问题,我写了类似http://www.codeproject.com/KB/WPF/BitmapToBitmapSource.aspx?msg=3590727的内容,但是我得到了异常:WindowsBase.dll中出现了'System.InvalidOperationException'类型的第一次机会异常:/我必须转换位图to bitmapsource,beacouse我使用aforge.net从摄像头获取电脑图像。你知道为什么我得到这个例外吗? (一切都很好用winforms)或者你知道库看起来与aforge有什么相似之处吗?我可以和WPF一起使用吗?

我的代码:

private void NewFrameHandler(Bitmap bitmap)
{
    BitmapSource bitSrc = null;
    var hBitmap = bitmap.GetHbitmap();

     bitSrc = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
         hBitmap,
         IntPtr.Zero, Int32Rect.Empty,
            System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());

    image1.Source = bitSrc;
}

1 个答案:

答案 0 :(得分:0)

代码看起来不错,但你需要使用PInvoke方法DeleteObject来释放hbitmap使用的内存。

我能想到它失败的唯一原因是转换的位图有问题。