嘗試調整較大圖像的大小時出現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