从Image获取字节数组时内存压缩异常中的图像

时间:2009-12-23 10:01:55

标签: graphics image

我有一个位图对象,它在运行时占用了很大一部分内存,我想在内存中压缩它(JPEG格式)然后再使用它。我正在使用它进行压缩:

MemoryStream ms = new MemoryStream();
oBmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
oBmp.Dispose();
oBmp = null;
Image ResultImg = Image.FromStream(ms);
ms.Dispose();
ms = null;

我不知道这是否真的会节省一些内存,或者当我从流中加载Image时,所有内容都恢复正常内存消耗。

无论如何我后来试图从这个Image获取一个字节数组,我正在使用:

MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();

ImageIn与上一代码中保存的图像相同。 但我得到一个GDI +例外: [GDI +中发生了一般错误。]

如果我没有“在内存压缩中”这样做,相同的代码工作正常,但我真的需要它来节省内存。

由于

1 个答案:

答案 0 :(得分:0)

我的错误,我永远不应该打电话:

ms.Dispose();