位图图像到位图引发异常



我将在StackOverflow上找到的函数用于项目: https://stackoverflow.com/a/6484754/9535211
此函数的目标是将System.Windows.Media.Imaging.BitmapImage转换为System.Drawing.Bitmap。

public Bitmap BitmapImage2Bitmap(BitmapImage bitmapImage)
{
using (MemoryStream outStream = new MemoryStream())
{
BitmapEncoder enc = new BmpBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(bitmapImage));
enc.Save(outStream);
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(outStream);
return (new Bitmap(bitmap));
}
}

它运行良好(即使它真的很重(,但它每次调用时都会抛出异常:抛出的异常:PresentationCore 中的"System.NotSupportedException".dll
似乎它来自以下行:

enc.保存(外流(;

有没有办法让它消失?
感谢您的帮助!

您应该检查以确保您传入的位图图像有效。根据 BitmapEncoder.Save 的文档,您遇到的错误是"帧"计数小于或等于零的结果。

确保正确添加帧,并且使用正确的值传入位图图像。

最新更新