Исключение 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);
Другие вопросы по тегам