在我们的应用程序中,我们遇到了 GDI+ 中的 ExternalException问题。该应用程序已成功分发并在 100 多台计算机上运行,我们无法在我们的测试环境中重现它。但是,一台计算机因上述异常而崩溃。
Bitmap
之前是通过 resx 文件加载的,并且在BitmapImage
应用程序的 WPF 部分中仅用于显示。
下面是对应的代码:
private static BitmapImage ConvertToImage(Bitmap bitmap)
{
var bitmapImage = new BitmapImage();
using (var memory = new MemoryStream())
{
bitmap.Save(memory, ImageFormat.Png);
memory.Position = 0;
bitmapImage.BeginInit();
bitmapImage.StreamSource = memory;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();
}
return bitmapImage;
}
调用时应用程序崩溃
bitmap.Save
计算机安装了.NET 4.0的Windows 7 x64。
关于这可能是什么的任何提示?
编辑1:
到目前为止,我还没有发现导致异常的原因。我们发现该异常仅发生在某些特定图像上。但所有图像都是PNG
格式。
现在,我们将坚持使用对我们有用的解决方案CreateBitmapSourceFromHBitmap
。CreateBitmapSourceFromHBitmap - Stackoverflow 帖子