インターレースPNG

PNGファイルを書き出す時にインターレースPNGにすると、ファイルサイズ増えるけど、表示の体感は速くなる。また、ウェブページにおいては最初に画像の大きさ分だけ確保されるので、リフロー(レイアウト)を抑止できる。レスポンシブ・イメージとまでは言えないけど、多少はみんなに公平に優しい気がするので、ファイルサイズをケチらずに、すべてインターレースPNGにしてしまうのが良い気がする。デメリットも特に知らない。

新たなPNGファイルならば書き出し時にインターレースPNGにすれば良いけど、既存のものを手作業で修正しようとなると面倒くさい。optipngにインターレースPNGに変換するオプションがあるので、それを使って処理すると良い。

$ optipng -i 1 -strip all *.png

ついでに消し忘れているかもしれないメタデータの削除も行うと、ファイルサイズが節約できて幸せ。メタデータの削除機能はv0.7からの機能なので、古いバージョンを使ってる人は新しいのに入れ替える必要がある。


手元のPNGファイルがインターレースPNGかどうかをチェックするには、同じoptipngの-simulateオプションで確認するのが手軽。

$ optipng -simulate example.png
** Processing: example.png
582x582 pixels, 3x8 bits/pixel, RGB, interlaced
Reducing image to 8 bits/pixel, 60 colors in palette
Input IDAT size = 8084 bytes
Input file size = 23456 bytes

Trying:
  zc = 9  zm = 8  zs = 0  f = 0         IDAT size = 3722

Selecting parameters:
  zc = 9  zm = 8  zs = 0  f = 0         IDAT size = 3722

No output: simulation mode.

出力の2行目に画像の縦横サイズとカラーモード、そしてインターレースかどうかが書かれている。WindowsではTweakPNGという(ショボい)GUIのメタデータ・エディターがあるので、それでも良いかも。