gpt4 book ai didi

C# Image.Clone 内存不足异常

转载 作者:IT王子 更新时间:2023-10-29 03:51:20 25 4
gpt4 key购买 nike

为什么会出现内存不足异常?

所以这在 C# 中第一次通过:

splitBitmaps.Add(neededImage.Clone(rectDimensions, neededImage.PixelFormat));

其中 splitBitmaps 是一个 List 但它在 VB 中至少运行 4 次迭代:

arlSplitBitmaps.Add(Image.Clone(rectDimensions, Image.PixelFormat))

其中 arlSplitBitmaps 是一个简单的数组列表。 (是的,我已经在 C# 中尝试过 arraylist)

这是完整的部分:

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 中工作得很好。

更新:

我实际上找到了这个工作的一个(某种)原因,但忘了发布它。如果我记得的话,它与将图像转换为位图有关,而不是仅仅尝试克隆原始图像。

最佳答案

当 Rectangle 中指定的坐标超出位图的边界时,Clone() 也可能抛出内存不足异常。它不会自动为您剪辑它们。

关于C# Image.Clone 内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/199468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com