2015-12-16 2 views
0

Я использую MagickNET в приложении ASP.NET. Обычно это работает, но иногда с Somes файлов (.jpg, .png) я получаю исключение, когда я ресэмплировать изображение с другим DPIИсключение MagickNET, когда resample PixelCacheAllocationFailed

ImageMagick.MagickResourceLimitErrorException: iisexpress.exe: PixelCacheAllocationFailed `D: \ Data \ IT Tools и приложения \ Code \ Zola \ ZolaIntranet \ Загрузить \ Temp \ 4ffe031b-b559-4b5c-8f88-e1a5b8e4fbe7.jpg @ ошибка/cache.c/OpenPixelCache/3369

Здесь линия, где исключение происходит:

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

Когда я t Ried использовать меньший DPI (72 или меньше), я получил еще одно исключение:

ImageMagick.MagickCacheErrorException: iisexpress.exe: UnableToExtendCache «D: \ Data \ IT инструменты и приложения \ Code \ Zola \ ZolaIntranet \ Upload \ Temp \ 42458df9-f7ee-4e4b-abfd-628317b4b7eb.jpg ': Недопустимый аргумент @ ошибка/cache.c/OpenPixelCache/3536 ---> ImageMagick.MagickCacheErrorException: iisexpress.exe: UnableToExtendCache

Может кто-то иметь идея?

+0

Вы можете поделиться этим изображением? Не стесняйтесь обращаться ко мне в CodePlex, если вы не хотите публично публиковать это. – dlemstra

+0

Hi diemstra. Конечно, здесь картина http://postimg.org/image/wpv7rh0kh/ Что я заметил, когда я попытался открыть эту же картинку с Gimp, у меня также было сообщение: ... у этого изображения есть цветной профиль ... Заранее спасибо. –

+0

Я не могу воспроизвести вашу проблему с помощью новейшей сборки разработки, не могли бы вы попробовать? Инструкции находятся на https://magick.codeplex.com – dlemstra

ответ

0

По той или иной причине для нескольких изображений в формате PNG ImageMagick не может найти плотность изображения. Вы должны указать плотность перед вызовом функции Resample() и решить эту проблему.

PointD density = new PointD(300,300); 

tmpImage.Density = density; 
tmpImage.Resample(density); 
tmpImage.Write(image); 
Смежные вопросы