SoftBankガラケー端末で表示されないjpeg画像があって、ファイル形式調べたら「プログレッシブJPEG」だった。形式を「ベースラインJPEG」に変更したら無事表示された。
docomo, au だと問題なく表示されてたから危うくスルーするところだった。あぶないあぶない。あたりまえだけど実機で検証するの大事...
んで、プログレッシブJPEGとベースラインJPEGの相互変換はフォトショですんなりできるんだけど貧乏なおれはそんなの持ってないので手元の CentOS に入ってた jpegtran っていうコマンドを使った。
プログレッシブ→ベースライン変換は以下。
$ jpegtran progressive.jpg > baseline.jpg
ベースライン→プログレッシブ変換は -progressive をつければいい。
$ jpegtran -progressive baseline.jpg > progressive.jpg
ついでに、画像を最適化するには -copy none でファイル内メタ情報を削除、-optimize で最適化を行えばいい。
$ jpegtran -copy none -optimize src.jpg > dst.jpg
ちなみに、プログレッシブとベースラインのどちらを採用するかは(ちょっと古いけど)以下に考察されている。
(ていうか、jpeg なんかとっとと捨てて png 使おうよ...)