为什么我得到内存不足异常?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