GADGET FACTORY 雑記帳

iPhone アプリ / Flash コンテンツ /Adobe AIR などを開発していて気づいたことや備忘録、TIPS、HACKなど

画像の容量削減のために2 「pngyu」を使ってみた

先日より、APKファイルの容量削減に頭を悩ましております。

今回テストしたのは、「pngyu」というpng画像の減色ツールです。
Pngyu

このツールの画像圧縮(減色)部分は、「pngquant」というコマンドラインから利用できる減色ツールが使われております。
pngquant — lossy PNG compressor

24bit/32bitのPNGファイルを、8bitのインデックスカラーに変換してくれるツールです。
この「pngquant」というのは、色々なツールに使われているらしく、かなり評判の良いものらしいです。




圧縮が必要な画像ファイル数が多いので、どうしても一括で処理できるツールがほしくて、当初は、このツールをそのままターミナルから利用しようかと思っておりました。

しかし、都度設定をいじったりするのが面倒そうなのと、コマンド自体のオプションがいくつかあり、それぞれどのような効果があるのか、テストしてみないと分からなかったので、少し敷居が高そうだなぁと思っていたところ、「pngyu」を発見したので、ダウンロードして使用することに。

「pngyu」の使い方

使い方が非常に簡単で、ウィンドウに圧縮したいファイルをまとめてドラッグドロップし、右下の「Compress start」ボタンをクリックするだけです。
f:id:KEN-S:20140828002325p:plain

すると、「ImageOptim」を利用するか確認してきます。
f:id:KEN-S:20140828002354p:plain

えらく時間がかかったわりに、全く効果がなかった、昨日の記憶が呼び覚まされる名前です。
画像の容量削減のために「ImageOptim」を使ってみた - GADGET FACTORY 雑記帳

ここは当然「NO」を選んでスタートします。
f:id:KEN-S:20140828002818p:plain

順調に進行していき、昨日と同じ370ファイルが、およそ5分で減色処理終了。
f:id:KEN-S:20140828002836p:plain

HIGH QUALITY の設定で作業を行ったのに、5分で処理が終了するとは、昨日とはかなり違う感じです。
圧縮されたファイル容量も、108.6MBが 26.9MBと さすが減色しただけのことはあります。

画像を見た感じでは、グラデーションなどの部分が、拡大した時には若干目立ちますが、Android端末で見る限りでは、ほとんど気にならない感じでした。

画像ファイルを組み込んでみる

これならばと、さっそく実際のプロジェクト(flash)ファイル内の画像を、減色処理したファイルに差し替えていきます。
全ての画像について、flaファイル内で差し替え終えると、最終的なflaファイルの容量は
画像差し替え前のサイズ:649.1MB
画像差し替え後のサイズ:216.4MB
大幅なファイル容量の削減に成功しました。

これならば、パブリッシュされる apk ファイルについても期待が持てる感じです。
さっそく、パブリッシュしてみます。

apk ファイルを作ってみると

昨日の段階での apk ファイルの容量は 110.6MB でした。
さて、今回減色処理を行った画像を組み込んだ apk ファイルのサイズはというと・・・

68.7MB

おおおそ、40MBほどの圧縮に成功しました。

ただし、この容量では、まだ 50MBを切っていないので、アップすることはできません。

いよいよ最後の手段を取ることに。

元の画像ファイルの容量圧縮については、もうほとんど手は尽くした感じです。

元の画像解像度を変更するという手もあることはあるのですが、その場合現在のアプリで画像を表示する際に、拡大表示する必要があり、状況によっては、ドットが目立ってしまうことも考えられるので、できれば元画像の解像度変更はしたくない。

すると、できる事と言えばあとは、flashでのパブリッシュ時の設定をいじるしか、手は残っていない感じ。
現状で、パブリッシュ時に、各画像の圧縮率は、非圧縮から80%程度の圧縮率に設定されていました。

それらを、画像ごとに、微調整していくことに。
でも、あまり大幅な画質低下は避けたいので、圧縮率は最小でも50%程度を維持しつつ、いろいろと調整すること1時間ほど。

無事に apk ファイルのサイズを 50MB 以下にすることができました。

これで、「Apk拡張ファイル」を使わずにリリースすることができます。

とりあえず、作成したapkファイルを Google Play へアップロード。
無事に最初のバージョンをアップすることができました。

今回は本当に苦労しましたが、すばらしい画像圧縮ツール「pngyu」とそのエンジン「pngquant」のおかげで、何とか対処することができました。
制作された方には、非常に感謝いたします。