Pourquoi est-ce que je reçois une exception d'absence de mémoire ?
Donc ça meurt en C# du premier coup :
splitBitmaps.Add(neededImage.Clone(rectDimensions, neededImage.PixelFormat)) ;
Où splitBitmaps est une liste<BitMap> MAIS cela fonctionne en VB pour au moins 4 itérations :
arlSplitBitmaps.Add(Image.Clone(rectDimensions, Image.PixelFormat))
Où arlSplitBitmaps est une simple liste de tableaux. (Et oui j'ai essayé arraylist en c#)
C'est la section complète :
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 est un Bitmap d'ailleurs.
Je ne trouve aucune réponse utile sur l'internet, et surtout pas pourquoi cela fonctionne très bien en VB.
Mise à jour :
J'ai en fait trouvé une raison (en quelque sorte) pour que cela fonctionne mais j'ai oublié de la poster. Il s'agit de convertir l'image en bitmap au lieu d'essayer de cloner l'image brute si je me souviens bien.