
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