4

Создание миниатюр PDF-файлов с помощью imagemagick иногда приводит к неправильным цветам. Мы используем старую версию imagemagick (6.5.7-8, это версия, установленная на серверах heroku). Вот команда, которую мы сейчас используем:

convert \
  -size "725x1200>" \
  -colorspace RGB \
  -flatten \
  -density 300 \
  -quality 100 \
   input.pdf \
   output.jpg

Я пробовал использовать разные цветовые пространства, такие как sRGB, YIQ, ... но ни одно из них не отображает цвет правильно.

Использование imagemagick-6.7.7-6 локально работает, поэтому я попытался связать команду 'convert' в моем каталоге application /bin, команда работает, но результат все еще не верен, поэтому кажется, что проблема связана с другим imagemagick команда, используемая «convert» или из другой библиотеки.

Вот пример выходных данных:

  • Правильный вывод: слева
  • Неверный вывод: справа
    Правильный вывод Неверный вывод

Странно, но на некоторых страницах одного и того же PDF вывод всегда корректен. Любая идея, какая библиотека или команда может быть проблемой, или если есть надлежащий набор опций, чтобы передать imagemagick, чтобы всегда сделать это правильно?

1 ответ1

2

После еще одного расследования выясняется, что проблема связана с ghostscript, в котором отсутствует опция -dUseCIEColor . И из того, что я собрал в Интернете, невозможно передать параметры в ghostscript через imagemagick. Однако возможно вызвать две команды вместе с каналом: https://stackoverflow.com/questions/653380/converting-a-pdf-to-png

Мой конкретный вариант использования

Это немного более конкретно для моего варианта использования, но я подумал, что кто-то может быть заинтересован. Поскольку мы генерируем миниатюры с помощью Paperclip в нашем приложении rails, я создал новый процессор paperclip, чтобы позаботиться о преобразовании pdf в jpg, и затем imagemagick вступает во владение, чтобы выполнить обычное изменение размера. Мой код с примером здесь: https://gist.github.com/3059321

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .