1

我在将位图转换为位图源时遇到问题,我写了类似这样的东西http://www.codeproject.com/KB/WPF/BitmapToBitmapSource.aspx?msg=3590727,但我得到了例外:“系统”类型的第一次机会例外。 InvalidOperationException'发生在 WindowsBase.dll 中:/ 我必须将位图转换为位图源,因为我使用 aforge.net 从网络摄像头捕获图像。你知道我为什么会得到这个例外吗?(一切都适用于winforms)或者也许你知道图书馆看起来与我可以与WPF一起使用的aforge相似?

我的代码:

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;
}
4

1 回答 1

0

该代码对我来说看起来不错,尽管您需要使用 PInvoke 方法 DeleteObject 来释放 hbitmap 使用的内存。

我认为它失败的唯一原因是正在转换的位图有问题。

于 2011-02-26T01:39:09.803 回答