プログレッシブJPEGやCMYKモードのJPEGをUnix環境で判別(判定)する際によく使われるのが、imagemagicのidentifyですが、プログレッシブJPEGの判別(判定)はオプション「-verbose」を使用しないと取得できなく、この「-verbose」が様々な情報を取ってくるものだから、非常に遅いです。
困り果てていたときに、職場の先輩が良いものを発見してくれました。ホント謝謝。
発見したものは「rdjpgcom」です。
以下使用例です。
■【rdjpgcomとは】
Linux系のコアのライブラリ。
プログレッシブJPEG,CMYKモードのJPEGを判別できる。
■【rdjpgcomでプログレッシブJPEGを判別】
$ rdjpgcom -verbose progressive.jpg JPEG image is 800w * 1000h, 4 color components, 8 bits per sample JPEG process: Progressive $ rdjpgcom -verbose jpg.jpg JPEG image is 240w * 320h, 3 color components, 8 bits per sample JPEG process: Baseline
※JPEG process: ProgressiveならプログレッシブJPEG。
■【rdjpgcomでCMYKモードJPEGを判別】
上記で 4 colorならCMYK, 3 color ならJPEG、1 color ならグレースケール
ちなみにrdjpgcomはJPEG以外の画像は使えません。下記のように返戻されます。
$ rdjpgcom png.png Not a JPEG file
※参考URL
http://linux.about.com/library/cmd/blcmdl1_rdjpgcom.htm
http://terralib.dpi.inpe.br/lib/html/devel/html/dd/d5c/a02985.html ←ソース
以下は余談です。
■【imagemagicのidentifyでプログレッシブJPEGを判別(判定)】
$ identify -verbose CMYK_progressive.jpg | grep -i interlace Interlace: JPEG $ identify -verbose jpg.jpg | grep -i interlace Interlace: None
※Interlace: JPEG ←プログレッシブJPEG
Interlace: None ←プログレッシブJPEGではない
■【imagemagicのidentifyでCMYK(color model)を判別(判定)】
$ identify -format '%[colorspace]' CMYK_progressive.jpg CMYK $ identify -format '%[colorspace]' gray-scale.jpg Gray $ identify -format '%[colorspace]' jpg.jpg RGB
Please comment with your real name using good manners.