1

我在 ASP .NET 应用程序中使用 MagickNET。通常它可以工作,但有时使用某些文件(.jpg,.png)当我用另一个 DPI 重新采样图片时收到异常

ImageMagick.MagickResourceLimitErrorException: iisexpress.exe: PixelCacheAllocationFailed `D:\Data\IT Tools and Applications\Code\Zola\ZolaIntranet\Upload\Temp\4ffe031b-b559-4b5c-8f88-e1a5b8e4fbe7.jpg'@error/cache.c/OpenPixelCache /3369

这里发生异常的行:

 tmpImage.Resample(new PointD(300,300));

当我尝试使用较小的 DPI(72 或更少)时,我遇到了另一个异常:

ImageMagick.MagickCacheErrorException: iisexpress.exe: UnableToExtendCache 'D:\Data\IT Tools and Applications\Code\Zola\ZolaIntranet\Upload\Temp\42458df9-f7ee-4e4b-abfd-628317b4b7eb.jpg': 无效参数@错误/缓存。 c/OpenPixelCache/3536 ---> ImageMagick.MagickCacheErrorException: iisexpress.exe: UnableToExtendCache

有人可以有一个想法吗?

4

1 回答 1

0

由于某种原因,对于少数 PNG 格式的图片,ImageMagick 无法找到图片的密度。Resample()您必须在调用函数之前指定密度,这可以解决我的问题。

PointD density = new PointD(300,300);

tmpImage.Density = density;
tmpImage.Resample(density);
tmpImage.Write(image);
于 2015-12-23T16:27:00.110 回答