ImageMagick изменяет цвета при преобразовании PDF в изображения

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

-density 140 -limit memory 64MB -limit map 128MB [pdffile] page.png

вот результат. Справа у нас есть оригинальный PDF и слева выходное изображение. Как вы можете видеть, цвета довольно заметно отличаются.

что может быть причиной этого и как это исправить?

image

5 ответов


попробуйте выполнить следующую команду:

-density 140 -limit memory 64MB -limit map 128MB -colorspace RGB [pdffile] page.png

Edit: позже я обнаружил, что ImageMagick может сделать это хорошо, мне просто нужно было использовать -colorspace sRGB

моей последней командой было:

convert -density 560 -limit memory 64MB -limit map 128MB \
        -colorspace sRGB [pdffile] -scale 25% page.png

передискретизация и масштабирование должны были противостоять плохому сглаживанию, упомянутому ниже.

прежде чем я обнаружил это, вот мое предыдущее решение...


в моем случае цветов, полученный с помощью ImageMagick в convert были перенасыщены, совсем как в вопросе. Я пытался преобразовать этот файл использование IM 6.7.7.10-6ubuntu3.

  • -resample 100 не имело значения.

  • -colorspace RGB казалось, производил более точные насыщения, но все изображение было темнее, чем должно было быть.

любопытно, предложение использовать GhostScript вместо ImageMagick для преобразования, произведенного очень близко к правильному цвета:

gs -q -sDEVICE=png16m -dSubsetFonts=true -dEmbedAllFonts=true \
      -sOutputFile=page.png -r200 -dBATCH -dNOPAUSE [pdffile]

(первоначальное предложение передал -dUseCIEColor опция, но в моем случае это, казалось, уменьшало гамму: светлые пиксели были прекрасны, но темные пиксели были слишком темными, поэтому я удалил его.)

после этого единственное, что меня беспокоило, было то, что сглаживание / края были немного выключены в местах (особенно видны на кривых, проходящих 45 градусов). Чтобы улучшить это, я создал вывод в четыре раза больше требуемого разрешения, а затем после этого масштабируется, делая эти ошибки почти незаметными. Обратите внимание, что мне пришлось использовать ImageMagick в -scale, и не -geometry или -resize, чтобы избежать бикубические эффекты звона.


использовать :

-density 140 -resample 100 -limit memory 64MB -limit map 128MB [pdffile] page.png

Open Source mupdf util mutool сохраняет цвет и размер, используя параметры по умолчанию ниже если вам нужно перечислить страницы, разделенные запятой в конце команды.

mutool draw-o draw%d.png abook.формат PDF 1,2

в противном случае при использовании Linux попробуйте Windows для лучшей интерпретации RGB цветового пространства при использовании преобразования imagemagick.


следующие изображения показывают, как сглаживание улучшается, если вы выполняете выборку с более высоким разрешением, а затем уменьшаете масштаб.

хотя 1120 было немножко лучшим качеством чем 560, оно приняло долгое время преобразовать, поэтому я вероятно выбрал бы 560 на хорошее время:качество компромисс.

-colorspace sRGB -density 140

enter image description here

-colorspace sRGB -density 280 -scale 50%

enter image description here

-colorspace sRGB -density 420 -scale 33.3333%

enter image description here

-colorspace sRGB -density 560 -scale 25%

enter image description here

-colorspace sRGB -density 1120 -scale 12.5%

enter image description here

(легче увидеть разницу, если вы загрузите последние два изображения и переключитесь между ними в своем любимом просмотр изображений. Или прокрутите этот список изображений вверх, а не вниз. Вы должны казаться им все более уродливыми.)