Почему я получаю исключение из памяти?
Таким образом, это первый раз умирает в С# через:
splitBitmaps.Add(необходимоImage.Clone(rectDimensions, neededImage.PixelFormat));
Если splitBitmaps - это List <BitMap> НО это работает в VB как минимум за 4 итерации:
arlSplitBitmaps.Add(Image.Clone(rectDimensions, Image.PixelFormat))
Где arlSplitBitmaps - это простой список массивов. (И да, я попробовал 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.
Update:
Я действительно нашел причину (вроде) для этой работы, но забыл ее опубликовать. Это связано с преобразованием изображения в растровое изображение вместо того, чтобы просто клонировать исходное изображение, если я помню.