imagemagick によるサムネイル生成では正しい色がレンダリングされない

imagemagick によるサムネイル生成では正しい色がレンダリングされない

imagemagick で PDF のサムネイルを生成する時々間違った色がレンダリングされます。私たちは 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 をローカルで使用すると機能するので、アプリケーションの /bin ディレクトリ内に 'convert' コマンドをバンドルしようとしましたが、コマンドは機能しますが、結果はまだ間違っています。したがって、問題は 'convert' によって使用される別の imagemagick コマンドか、別のライブラリのいずれかに起因しているようです。

出力の例を次に示します。

  • 正しい出力: 左側
  • 間違った出力: 右側
    正しい出力 出力が正しくありません

不思議なことに、同じ PDF の一部のページでは、出力は常に正しいです。どのライブラリまたはコマンドが問題なのか、または常に正しく出力するために imagemagick に渡す適切なオプション セットがあるかどうか、ご存知ですか?

答え1

さらに調査してみると、問題はオプションがない ghostscript から来ているようです-dUseCIEColor。また、Web で収集した情報によると、imagemagick を介して ghostscript にパラメータを渡すことはできません。ただし、パイプを使用して 2 つのコマンドを一緒に呼び出すことは可能です。https://stackoverflow.com/questions/653380/pdf を png に変換する

私の具体的な使用例

これは私の使用例に少し特化していますが、興味がある人がいるかもしれないと思いました。 Rails アプリケーションで Paperclip を介してサムネイルを生成しているため、PDF から JPG への変換を処理する新しい Paperclip プロセッサを作成し、その後 imagemagick が通常のサイズ変更を引き継ぎます。私のコードと例を以下に示します。出典: github.com

関連情報