Создание эскизов JPG из PDF вызывает проблемы с новой версией ImageMagick

Я использую Imagemagick для создания эскизов изображений PDF-файлов с помощью этой команды:

convert 'input.pdf[0]' -resize "100x140>" -colorspace 'rgb' 'output.jpg' 2>/dev/null

Некоторые из PDF-файлов находятся в цветовом пространстве CMYK, поэтому ожидаемое цветовое пространство указано как rgb. Это работало нормально, пока я не обновился до последних версий Imagemagick (6.6.7-1) и ghostscript (9.01_0), теперь похоже, что преобразование в rgb больше не работает, вот пример вывода:

сбой преобразования cymk-rgb

(Фон должен быть белым, а не черным). Кажется, что проблема связана с параметром -resize, потому что, если я его удалю, вывод будет правильным.

Чтобы получить ожидаемый результат, я теперь делаю два прохода: первый для преобразования в rgb и второй для изменения размера изображения, но это не очень элегантно. Есть ли лучшее решение?


person Bastien    schedule 17.02.2011    source источник
comment
Протестировано с imagemagick 6.6.5-6 и 6.6.7-6, и я подтверждаю эту проблему, более поздний становится черным фоном, а старый работает как положено.   -  person greut    schedule 17.02.2011
comment
У меня такая же проблема с 6.6.7-10 и gs 9.01.   -  person tomtaylor    schedule 06.03.2011
comment
То же самое с ImageMagick 6.7.4-0 и gs 9.04. Любая подсказка о том, как это решить?   -  person PowerKiKi    schedule 13.01.2012
comment
У меня возникла похожая проблема, решил ее с помощью GraphicsMagick.   -  person Martin Krung    schedule 21.01.2016


Ответы (2)


Я решил эту проблему, передав дополнительную опцию -flatten. Теперь мои миниатюры отображаются правильно.

person Bastien    schedule 12.07.2012

А если поменять местами варианты? Это может избавить вас от запуска двух разных команд. Потому что эти две команды:

convert 'in.pdf[0]' -resize "100x140>" -colorspace 'rgb' 'out.jpg'
convert 'in.pdf[0]' -colorspace 'rgb' -resize "100x140>" 'out.jpg'

заставит (последние версии) ImageMagick обрабатывать файлы по-другому; каждый раз он следует порядку, указанному в командной строке (это неверно для более старых версий).

person Kurt Pfeifle    schedule 12.07.2012