我正在尝试从 MemoryStream 获取图像。当在 MemoryStream 中我有一个大的 JPG 图像(在步骤中转换为位图后,大小从 38MB 增加到超过 1.3GB,评论为有问题)我得到一个 OutOfMemory 异常。使用较小的图像一切正常。如何处理这样的问题?对我来说可接受的解决方案是将存储在 _imgArray
中的图像调整大小/重新缩放到 1.3GB 以下。是否可以在调用 Image.FromStream
方法之前执行此操作?
public static Image GetImageFromByteArray(byte[] _imgArray)
{
Image imgFromArray = null;
MemoryStream stream = null;
try
{
stream = new MemoryStream(_imgArray, 0, _imgArray.Length);
imgFromArray = Image.FromStream(stream, true);//this line throws an Out of memory exception
}
catch(OutOfMemoryException)
{
Error.Warning("Das Bild ist zu groß!");
}
catch (Exception ex)
{
throw new FacadeException("Fehler beim Laden des Bildes.", ex);
}
finally
{
if (stream != null)
{
stream.Close();
}
}
return imgFromArray;
}
最佳答案
关于c# - Image.FromStream 内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102724/