apple.png 426ピクセル×496ピクセルだけど、extractbbすると
%%Title: ./apple.png
%%Creator: extractbb 20120420
%%BoundingBox: 0 0 204 238
%%HiResBoundingBox: 0.000000 0.000000 204.463098 238.060320
%%CreationDate: Thu Apr 25 20:14:15 2013
になるのは何故でしょう?
ちなみに、
apple.eps
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 213 248
%%Pages: 1
%%EndProlog
%%Page: 1 1
apple.pdf ページサイズ 75 x 87 ミリ
%%Title: ./apple.pdf
%%Creator: extractbb 20120420
%%BoundingBox: 0 0 213 248
%%HiResBoundingBox: 0.000000 0.000000 213.000000 248.000000
%%PDFVersion: 1.2
%%Pages: 1
%%CreationDate: Thu Apr 25 21:00:46 2013
まず大前提として、BoundingBox の数値の単位は(EPS のヘッダでも、(x)bbファイルでも、\includegraphics
の bb
オプションでも)常に bp (1bp = 1/72 in = 0.35278mm = 1.00375pt)です。
つまり、件の PNG 画像の「実寸」(物理的な寸法)は 204.463098bp × 238.060320bp (= 7.2130cm × 8.39824cm)ということになります。
では、何故、426px×496px の画像の実寸がそうなっているかというと、それはその画像の解像度がそうなるように設定されているからです。つまり、426px = 7.2130cm なので、解像度は 59.06px/cm (≒150dpi)です。
解像度は一般に画像ごとに異なります。この値を調べるのは容易でないのですが、例えば ImageMagick の identify コマンドで調べられます。例えば、
identify -verbose apple.png
を実行すると出力の中に以下の行が得られ、解像度が 59.06px/cm であることが解ります。
Resolution: 59.06x59.06 Print size: 7.213x8.39824 Units: PixelsPerCentimeter
ところが、PNG/JPEG 画像の場合、画像ファイルに解像度情報が含まれていないことがあります。この場合、pdfTeX/dvipdfmx は 72dpi という値を仮定して処理されます。
※古い dvipdfm では既定値を 100dpi としていた。dvipdfmx で変更された理由は「pdfTeX に合わせる」ため。「ebb/.bbファイル」が「extractbb/.xbbファイル」に変更されたのはこの「既定の解像度」の違いによる混乱を防ぐため。
画像のサイズを(ベクトル形式でもビットマップ形式でも)常に実寸で管理するのは一貫しているのですが、多くの人はビットマップ画像の「実寸」に馴染みが無いので、この挙動は非常に解りにくいです。graphics/x + dvipdfmx で画像を挿入する方法について、私が「(dvipdfmx ドライバを指定して)extractbb を(手動でも自動でも)用いて .xbb ファイルを作る」のが最善と思っているのはこの理由によります。
変換アプリによって、変換されたPNG画像はいろいろだな。。。ということです。
試したのは以下の3つ。オプションはよくわかんない。
1.dvipngコマンドによる変換
2.convertコマンド
3.pdftocairoコマンド
****
1.\includegraphics[clip]{apple.eps}
dvipng -D 150 -T tight apple.dvi
apple1.png
444×517ピクセル、
%%Title: ./apple1.png
%%Creator: extractbb 20120420
%%BoundingBox: 0 0 444 517
%%HiResBoundingBox: 0.000000 0.000000 444.000000 517.000000
%%CreationDate: Fri Apr 26 13:43:14 2013
2.convert apple.eps apple2.png
213×248ピクセル
%%Title: ./apple2.png
%%Creator: extractbb 20120420
%%BoundingBox: 0 0 213 248
%%HiResBoundingBox: 0.000000 0.000000 213.000000 248.000000
%%CreationDate: Fri Apr 26 13:46:30 2013
3.pdftocairo -png apple.pdf
apple1.png
444×517ピクセル、
%%Title: ./apple-1.png
%%Creator: extractbb 20120420
%%BoundingBox: 0 0 213 248
%%HiResBoundingBox: 0.000000 0.000000 213.138472 248.181509
%%CreationDate: Fri Apr 26 13:53:36 2013
そして、identify -verbose apple-1.png
Image: apple-1.png
Format: PNG (Portable Network Graphics)
Class: DirectClass
Geometry: 444x517+0+0
Resolution: 59.05x59.05
Print size: 7.51905x8.75529
Units: PixelsPerCentimeter
*****
ホントは、PNGのBoundingBoxが他より少し小さくて、BoundingBoxとピクセルサイズが大幅に違うのか?だったのですが。。。
他より少し小さくなった理由は今回は保留にします。