Исключение MagickNET при повторной выборке PixelCacheAllocationFailed
Я использую MagickNET в приложении ASP .NET. Обычно это работает, но иногда с некоторыми файлами (.jpg,.png) я получаю исключение при повторной выборке изображения с другим DPI
ImageMagick.MagickResourceLimitErrorException: iisexpress.exe: PixelCacheAllocationFailed `D: \ Data \ ИТ-инструменты и приложения \Code\Zola\ZolaIntranet\Upload\Temp\4ffe031b-b559-4b5c-8f88-e1a5b8e4fbe7.j.cc \ openc error/ open_cache @ open_ error \ /3369
Вот строка, где происходит исключение:
tmpImage.Resample(new PointD(300,300));
Когда я попытался использовать меньший DPI (72 или меньше), я получил еще одно исключение:
ImageMagick.MagickCacheErrorException: iisexpress.exe: UnableToExtendCache 'D: \ Data \ ИТ-инструменты и приложения \Code\Zola\ZolaIntranet\Upload\Temp\42458df9-f7ee-4e4b-abfd-628317b4b7eb.jpg': неверный аргумент @ c/OpenPixelCache/3536 ---> ImageMagick.MagickCacheErrorException: iisexpress.exe: UnableToExtendCache
Может у кого-нибудь есть идея?
1 ответ
По той или иной причине для нескольких изображений в формате PNG ImageMagick не может найти плотность изображения. Вы должны указать плотность перед вызовом Resample()
функционировать и решить мою проблему.
PointD density = new PointD(300,300);
tmpImage.Density = density;
tmpImage.Resample(density);
tmpImage.Write(image);