0

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

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.dll 中的'System.NotSupportedException'
它似乎来自以下行:

enc.Save(outStream);

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

4

1 回答 1

-1

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

确保正确添加了框架,并且使用正确的值传入了 bitmapImage。

于 2018-10-24T13:40:22.017 回答