爲什麼我得到內存不足異常?C#Image.Clone內存不足異常
所以這死在C#上在第一時間通過:
splitBitmaps.Add(neededImage.Clone(rectDimensions,neededImage.PixelFormat));
凡splitBitmaps是一個List <的BitMap >但是這個工作在VB至少4次迭代:
arlSplitBitmaps.Add(Image.Clone(rectDimensions,Image.PixelFormat))
在哪裏arlSplitBitmaps是一個簡單的數組列表。 (是的,我已經嘗試在C#中的ArrayList)
這是fullsection:
for (Int32 splitIndex = 0; splitIndex <= numberOfResultingImages - 1; splitIndex++)
{
Rectangle rectDimensions;
if (splitIndex < numberOfResultingImages - 1)
{
rectDimensions = new Rectangle(splitImageWidth * splitIndex, 0,
splitImageWidth, splitImageHeight);
}
else
{
rectDimensions = new Rectangle(splitImageWidth * splitIndex, 0,
sourceImageWidth - (splitImageWidth * splitIndex), splitImageHeight);
}
splitBitmaps.Add(neededImage.Clone(rectDimensions, neededImage.PixelFormat));
}
neededImage是方式的位圖。
我在intarweb上找不到任何有用的答案,特別是沒有在VB中正常工作的原因。
更新:
我竟然找了個理由(在某種程度上)對這個工作卻忘了將它張貼。它與將圖像轉換爲位圖有關,而不是如果我記得只是試圖克隆原始圖像。
懷疑它是記憶,第一次爆炸。 – 2008-10-14 12:04:54
是的,位圖.Dispose不會影響這些OoM異常,以我的經驗。 – 2009-11-09 19:17:28