回答:
convert
間接的にGhostscriptを呼び出すImageMagickのコマンドを使用する代わりに、Ghostscriptを直接使用する方が確かに高速です。また、変換パラメーターをより詳細に制御できます。試してみる
gs \
-sDEVICE=jpeg \
-o bar_%03d.jpg \
-dJPEGQ=95 \
-r600x600 \
-g4960x7016 \
foo.pdf
どこ
-o
:出力パス+ファイル名を決定します(使用量を節約します-dBATCH -dNOPAUSE
)-dJPEGQ
:JPEG品質を95%に設定します-r
:解像度を600dpiに設定します-g
:画像サイズを4960x7016pxに設定します-sDEVICE
:出力をJPEGとして設定しますこのコマンドはおそらくあなたにとっては遅くなり、予想よりも大きなファイルを作成するでしょう。ファイルサイズを小さくして実行を高速化するには、これを試してください(おそらくconvert
コマンドラインの出力品質に近いでしょう):
gs \
-sDEVICE=jpeg \
-o bar_%03d_200dpi_q80.jpg \
-dJPEGQ=80 \
-r200x200 \
-g1653x2339 \
foo.pdf
あるいは
gs \
-sDEVICE=jpeg \
-o bar_%03d_default_a4.jpg \
-sPAPERSIZE=a4 \
foo.pdf
(これは72dpiの解像度を提供し、ほとんどの画面およびほとんどのWebアプリケーションに十分な場合がよくあります)。
ところで、ImageMagickが非常に遅い理由の1つは、Ghostscriptを2回呼び出すことです。PDF => PNGは一度に変換されませんが、2つの異なる手順を使用します。
PDF => PostScript
変換にGhostscriptを使用します。PostScript => PNG
変換にGhostscriptを使用します。次のように入力することで、ImageMagickの「デリゲート」(ImageMagickが使用する外部プログラム、Ghostscriptなど)の詳細設定について知ることができます。
convert -list delegate
(私のシステムでは、32の異なるコマンドのリストです。)次に、PNGへの変換に使用されるコマンドを確認するには、これを使用します。
convert -list delegate | grep -i png
OK、これはLinux向けでした。Windowsを使用している場合は、これを試してください。
convert -list delegate | findstr /i png
IMはPSまたはEPS入力からのみPNGを生成することがわかります。では、IMはどのようにしてPDFから(E)PSを取得しますか?簡単:
convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF
あ!Ghostscriptを使用してPDF => PS変換を行い、Ghostscriptを再度使用してPS => PNG変換を行います。動作しますが、Ghostscriptが一度に PDF => PNGを実行できることを知っている場合、最も効率的な方法ではありません。より速く。そして、はるかに良い品質で。
Ghostscriptデリゲートを介したIMの画像へのPDF変換の処理については、まず2つのことを知っておく必要があります。
-density 600
するconvert
パラメーターとして追加することを提案する場合があります。PDF => PS
、その後、PS => PNG
本当の失態です。あなたは決して勝利せず、最初のステップで品質を維持しますが、非常にしばしばいくつかを失うからです。理由:
PS => PDF
、したがって、それほど重要ではありません...)そのため、Ghostscriptを直接使用してPDFを一度にPNG(またはJPEG)に変換することをお勧めしました。そして、Ghostscriptの最新バージョン8.71(近日リリース予定:9.00)を使用してください...
pdftoppm
popplerパッケージのプログラムはJPEGを作成することもでき、私にとってはgs
上記の使用の約2倍の速度です。
pdftoppm -jpeg -r 300 foo.pdf foo.jpg
私の経験では、MuPDFはGhostscriptよりもはるかに高速です。これは、gsの問題をほとんど伴わない、はるかに新しいプロジェクトです。ユースケースに合うか試してください!
mudraw -w 1024 -h 768 -r 200 -c rgb -o bar%d.png foo.pdf
古いLinuxディストリビューションがあり、リポジトリからmupdf-toolsがインストールされている場合、mudraw
まだ呼び出される可能性がありますpdfdraw
次に、たとえばimagemagickを使用して、pngをjpegに変換する必要があります。ただし、Ghostscriptよりも高速です。