Webで公開する画像ファイルのサイズ削減

YDN Theater: Yahoo! Performance Presents: After YSlow "A"によると、機械的な画像ファイルのサイズ削減が結構効果があるらしい。ムービー中では以下の方法が紹介されていた。

1. gif形式のファイルをpng形式に変換する。

同じ画像をgifとpngで保存した場合、png形式の方が平均で20.42%、サイズが小さくできる。

convert image.gif image.png

convert はImageMagickに含まれている。

2. PNGファイルを最適化する。

pngcrushという、pngファイルの圧縮率を向上させるツールがある。

pngcrush image.png -rem alla -reduce result.png

3. JPEGファイルの「メタデータ」を削除する。

デジタルカメラが作ったjpegファイルにはExifの情報やサムネイルが画像ファイルに埋め込んである場合が多いが、Webブラウザで見るだけなら必要ないので、これも削除。

jpegtran -copy none -optimize image.jpg

YDNのムービーで紹介されていた jpegtran -copy none -optimize -perfect src.jpg dst.jpgは、私の環境(NetBSD 4.0 + pkgsrcのgraphics/jpeg)ではコマンドラインオプションが違っていて動作しなかった。

jpegtranは http://www.ijg.org/ の配布に含まれている。

pngは256色以内に収める。

pngは256色のフォーマットと1677万色のフォーマットではファイルの色を保存する形式が別で、256色の方がファイルサイズが小さい……という話があった気がする。