I am getting a strange error when run my C# console application.
//get trainingimages
var trainingImages = Directory.GetFiles(
"C:\\Users\\tub08918\\Google Drive\\Patil Lab\\AlexsFolderPleaseVisitMe\\ISIC-2017_Training_Data\\ISIC-2017_Training_Data",
"*.jpg"
).ToList();
for (var i = 0; i < trainingImages.Count; i++)
{
var image = Image.FromFile(trainingImages[i]);
var vsImage = ConvertBitmap(new Bitmap(image));
//cnvert to 2d array
var imgArray = new int[vsImage.Width, vsImage.Height, 3];
for (var j = 0; j < vsImage.Width; j++)
for (var z = 0; z < vsImage.Height; z++)
{
var p = vsImage.GetPixel(j, z);
imgArray[j, z, 0] = p.R;
imgArray[j, z, 1] = p.G;
imgArray[j, z, 2] = p.B;
}
}
I get runtime exception:
An unhandled exception of type 'System.OutOfMemoryException' occurred in System.Drawing.dll
Additional information: Out of memory.
But I am doing this image by image so I am confused what parts of my logic are faulty. My Convert Bitmap function looks like this:
public static Bitmap ConvertBitmap(Bitmap image)
{
// Convert other formats (including CMYK) to RGB.
var newImage = new Bitmap(newWidth, newHeight);
// Draws the image in the specified size with quality mode set to HighQuality
using (var graphics = Graphics.FromImage(newImage))
{
graphics.DrawImage(image, 0, 0, newWidth, newHeight);
}
return newImage;
}