尝试调整较大图像的大小时出现OutOfMemory
异常。我们的服务器只能调整小于1000x1000像素的图像。我的开发机器似乎处理任何大小,其他开发人员机器似乎有与服务器相同的限制。我的开发机器也是最好的spec'd。Graphics.DrawImage OutOFMemory异常
我觉得这段代码能正确处理所有的对象,但我可能是错的。我已经尝试使用perfmon来查看.net CLR内存,但我不确定如何解释结果。
我被困在如何最好地解决这个问题,并得出一个明确的答案,为什么问题存在。任何调试想法将不胜感激。发生在g.DrawImage
using(Image imgToResize = Image.FromFile(path))
{
using (Bitmap b = new Bitmap(ResizeWidth, ResizeHeight, PixelFormat.Format24bppRgb))
{
using(Graphics g = Graphics.FromImage(b))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, ResizeWidth, ResizeHeight);
b.Save(DiskPathThumb(maxSize), ImageFormat.Jpeg);
}
}
}
您在OnPaint事件中调用此代码的位置? – Arseny 2011-03-07 07:21:21
将其调用的发布文件上传到服务器。有时候甚至在缩略图被请求时甚至不会上传它。无论哪种方式都会得到相同的结果。 – 2011-03-07 09:33:37
它失败了什么?它总是一样的吗?另外,ResizeWidth和ResizeHeight的值是什么?有时GDI +会抛出内存不足的异常,这些异常并不是真正的内存不足异常。 – rsbarro 2011-03-08 08:08:20