2014年12月25日 12:51
新・OS X ハッキング! (131) 軽いPNGをもっと「軽く」する
PNGは基本的に可逆圧縮(ロスレス)だが、非可逆圧縮することでファイルサイズを稼ごうというのだ。
ここに紹介する「pngquant」は、非可逆圧縮を用いたPNG圧縮エンジンだ。ベクトル量子化アルゴリズムにより色数を256色の異なるRGBAの組み合わせに量子化し、誤差拡散法(フロイド-スタインバーグ)によりディザリングすることで、ある程度の品質を保ちつつファイルサイズを小さくすることを狙いとする。TrueColorアルファチャネルを持つPNG画像(PNG-24)を例にすると、2分の1から4分の1のサイズにまでコンパクトにできるため、前述したアプリ開発にはもってこいの存在といえる。
○pngquantでPNGを「軽く」する
pngquantは圧縮エンジンであり、OS Xでは「Pngyu」や「ImageAlpha」といったGUIベースの画像加工ツールを通じて利用できるが、独立して動作するコマンドの形でも配布されている。既存のPNG画像を軽量化することが目的であれば、CUIのほうが一括変換などバッチ処理は容易なため、本稿では敢えてpngquantをチョイスする。まずは以下のとおりコマンドラインを実行し、インストールしてみよう。