PNGファイルの最適化

こっそりAlphaTrimerとLinerFilterToolのバージョンアップを行いました。
どちらもPNGの最適化に関わるもので、Alpha0%の部分を単色で塗りつぶします。


PhotoShopでは消しゴムツールは色要素を残したまま透明にするだけなので、実は模様が透明部分に情報として残っており、見た目の割に圧縮が利かなかったり、展開に時間がかかったりするケースがあったりします。
そこで、見えない部分を単色で塗りつぶすことで、色情報を抜き去り、圧縮率と展開速度を高めようという訳です。
特に特殊なことをしていないキャラクター絵なんかでも、わりと複雑な縞模様が形成されていたり、テクスチャの柄が残ってたりするので、塗りつぶしは結構有効な場合が多いようです。


というわけで、展開速度(読み込み速度)が速いPNGファイル(それ以外のファイルにも言えますが)を作りたい場合は、

  1. PhotoShopで吐き出した場合は展開速度が重いので他のツールで再圧縮をかける(容量は1割ほど増加)
  2. 透明部分のトリミング
  3. 透明部分の色情報を単色で塗りつぶす

以上の3行程で随分と高速化されるかと思います。(PNGの保存設定はさておき)


さて、「透明部分を単色で塗りつぶす」と簡単に表現しましたが、実は単にAlpha0%の部分を塗りつぶすだけの簡単なお仕事というわけではいきません。
透明部分を操作するのでLinearFilterToolにある色漏れ対策と、この単色塗りつぶしは簡単に機能的に衝突してしまいます。
http://d.hatena.ne.jp/Ko-Ta/20090621/p1
よって「単色塗りつぶし→色漏れ対策」の順序で行う必要があります。
どちらも似たような処理なので、処理を分離せず同時にやっちゃったほうが無駄もなくきっと合理的です。