转换图像时内存不足错误
本文关键字:错误 内存不足 图像 转换 | 更新日期: 2023-09-27 17:58:26
我的图像转换程序有问题。我可以转换39个图像,然后出现这个错误:
引发异常:System.Drawing.dll 中的"System.OutOfMemoryException"
我不知道我的代码有什么问题。
错误:
string[] originalImage = Directory.GetFiles(textBox1.Text);
foreach (var filename in originalImage)
{
if (fileExtension.ToUpper() == ".JPG" || fileExtension.ToUpper() == ".PNG")
{
Bitmap bitmap = new Bitmap(filename); //error coming here
//DefaultCompressionJpeg(bitmap);
string fn = Path.GetFileNameWithoutExtension(filename);
VariousQuality(bitmap, fn, fileExtension, fileOriginalDate);
}
}
当您使用完实现IDisposable的每个对象时,您应该处理该对象。以下是程序中的一些一次性物品;
Filestream ms,
Bitmap original,
EncoderParameter encoderParameter
当内存不足,无法继续执行程序时,会引发OutOfMemoryException。处理上述物品应能解决您的问题。
更新:请尝试以下代码;
if (fileExtension.ToUpper() == ".JPG" || fileExtension.ToUpper() == ".PNG")
{
using (Bitmap bitmap = new Bitmap(filename)) // added using statement.
{
//DefaultCompressionJpeg(bitmap);
string fn = Path.GetFileNameWithoutExtension(filename);
//saadame lisaks ka extensioni, et saaksime lihtsamini faili ümber nimetada
VariousQuality(bitmap, fn, fileExtension, fileOriginalDate);
}
}