pdf を jpgに変換するメモ

Imagemagick の gs pdf脆弱性対応の無効化で書いておいたのだが、自分で探せなくなっていたのでメモ。

pdfからjpgに変換するのは以下のようなコマンドで良い:
% mogrify -format jpg -density 400 -quality 95 *.pdf

オプションの意味

Imagemagickのオプションの意味を訳しておく。 オリジナルはImageMagick – Command-line Options

-density width または -density widthxheight

このオプションは100とか200では、かなり粗めな画像になる。自分の場合は400ぐらいが適当だと思うが、元のpdfが粗ければ意味がない場合もある。

デバイスにレンダリングする画像の水平および垂直解像度を設定します。

このオプションは、ラスター画像をエンコードするときに保存する画像解像度、または PostScript、PDF、WMF、SVG などのベクター形式をラスター画像にレンダリング(読み込み)するときのキャンバス解像度を指定します。画像解像度は、出力デバイスやラスター画像にレンダリングするときに適用する単位を提供します。デフォルトの単位はドット/インチ(DPI)です。代わりに -units オプションを使用すると、1 センチメートルあたりのドットを選択できます。

デフォルトの解像度は72ドット/インチで、1ピクセルあたり1ポイントに相当します(MacintoshおよびPostscript標準)。コンピュータの画面は通常72か96ドット/インチで、プリンタは通常150、300、600、1200ドット/インチをサポートしている。

ファイル形式がサポートしている場合、このオプションを使用して、保存されている画像の解像度を更新することができます。Photoshop は独自の埋め込みプロファイルから画像解像度を保存・取得することに注意してください。このプロファイルが画像から取り除かれていない場合、Photoshop は標準ファイルヘッダで指定された画像解像度を無視して、以前の解像度を使用して画像を扱い続けます。

density オプションは属性を設定し、基礎となるラスター画像を変更しません。このオプションは、ピクセルに適用されるスケールを調整することによって、デスクトップパブリッシングの目的でレンダリングサイズを調整するために使用することができます。画像のピクセル数を変更して、同じ物理的寸法(インチまたはセンチメートル)にするには、-resample オプションを使用します。

-quality value

JPEGとMPEGの画像フォーマットでは、画質は1(最低画質で最高圧縮)から100(最高画質だが、圧縮効果は最低)です。デフォルトでは、入力画像の推定品質が判断できる場合はそれを使用し、そうでない場合は 92 を使用します。画質が90以上の場合、クロマチャンネルはダウンサンプリングされない。クロマ・ダウンサンプリングの係数を指定するには、-sampling-factor オプションを使います。

JPEG-2000 画像フォーマットでは、品質は Jasper ライブラリが要求する圧縮率に非線形方程式を使ってマッピングされます。この非線形方程式は、JPEG v1 フォーマットが提供する品質に緩やかに近似することを意図しています。デフォルトの品質値100は、非損失圧縮の要求です。品質を 75 にすると、16:1 圧縮を要求することになります。

MNG と PNG 画像フォーマットでは、品質値は zlib 圧縮レベル (quality / 10) とフィルタタイプ (quality % 10) を設定します。デフォルトの PNG の “品質” は 75 で、これは適応的 PNG フィルタリングを伴う圧縮レベル 7 を意味しますが、画像にカラーマップがある場合は、PNG フィルタリングを伴わない圧縮レベル 7 を意味します。

圧縮レベル 0 (品質が 10 未満) の場合は、ハフマン・オンリー戦略が使われ、最速ですが、必ずしも最悪の圧縮ではありません。