控制台应用程序中的 ImageResizer 内存不足错误
ImageResizer out of memory error in a console application
我编写了一些代码来使用 ImageResizer 调整大量图像的大小。
foreach(DataRow item in dst.Tables[0].Rows)
{
string dir = @"C:\Media\ImageCollection\" + item[image];
string outputDir = @"D:\ImageExport\" + item[filename].ToString().SubString(0, 5);
if (!Directory.Exists(outputDir))
Directory.CreateDirectory(outputDir);
if (Convert.ToInt32(item["width"]) > Convert.ToInt32(item["height"]))
ImageResizer.ImageBuilder.Current.Build(dir, outputDir + @"\" + item["image"] + ".jpg", new ImageResizer.ResizeSettings("?maxwidth=500&format=jpg&quality=96"), true);
else
ImageResizer.ImageBuilder.Current.Build(dir, outputDir + @"\" + item["image"] + ".jpg", new ImageResizer.ResizeSettings("?maxheight=500&format=jpg&quality=96"), true);
}
代码在 ImageResizer.ImageBuilder 调用之一的 System.Drawning.Image 中随机抛出异常 Out of Memory。
我想知道我是否在 AppConfig 文件中遗漏了什么。
<configSections>
<section name="resizer" type="ImageResizer.ResizerSection,ImageResizer" requirePermission="false" />
</configSections>
<resizer>
<plugins>
<remove name="SizeLimiting" />
<add name="PdfRenderer" downloadNativeDependencies="false" />
</plugins>
</resizer>
知道这里发生了什么吗?
根据您发布的代码,您正在尝试使用目录路径 (@"C:\Media\ImageCollection") 作为输入图像文件名。 ImageResizer 一次处理一张图像;您需要提供输入图像文件名。
OutOfMemoryException 是 Microsoft API 每当出现问题时抛出的一般错误消息;这并不总是意味着没有可用内存。
我编写了一些代码来使用 ImageResizer 调整大量图像的大小。
foreach(DataRow item in dst.Tables[0].Rows)
{
string dir = @"C:\Media\ImageCollection\" + item[image];
string outputDir = @"D:\ImageExport\" + item[filename].ToString().SubString(0, 5);
if (!Directory.Exists(outputDir))
Directory.CreateDirectory(outputDir);
if (Convert.ToInt32(item["width"]) > Convert.ToInt32(item["height"]))
ImageResizer.ImageBuilder.Current.Build(dir, outputDir + @"\" + item["image"] + ".jpg", new ImageResizer.ResizeSettings("?maxwidth=500&format=jpg&quality=96"), true);
else
ImageResizer.ImageBuilder.Current.Build(dir, outputDir + @"\" + item["image"] + ".jpg", new ImageResizer.ResizeSettings("?maxheight=500&format=jpg&quality=96"), true);
}
代码在 ImageResizer.ImageBuilder 调用之一的 System.Drawning.Image 中随机抛出异常 Out of Memory。
我想知道我是否在 AppConfig 文件中遗漏了什么。
<configSections>
<section name="resizer" type="ImageResizer.ResizerSection,ImageResizer" requirePermission="false" />
</configSections>
<resizer>
<plugins>
<remove name="SizeLimiting" />
<add name="PdfRenderer" downloadNativeDependencies="false" />
</plugins>
</resizer>
知道这里发生了什么吗?
根据您发布的代码,您正在尝试使用目录路径 (@"C:\Media\ImageCollection") 作为输入图像文件名。 ImageResizer 一次处理一张图像;您需要提供输入图像文件名。
OutOfMemoryException 是 Microsoft API 每当出现问题时抛出的一般错误消息;这并不总是意味着没有可用内存。