画像の容量削減のために2 「pngyu」を使ってみた
先日より、APKファイルの容量削減に頭を悩ましております。
今回テストしたのは、「pngyu」というpng画像の減色ツールです。
Pngyu
このツールの画像圧縮(減色)部分は、「pngquant」というコマンドラインから利用できる減色ツールが使われております。
pngquant — lossy PNG compressor
24bit/32bitのPNGファイルを、8bitのインデックスカラーに変換してくれるツールです。
この「pngquant」というのは、色々なツールに使われているらしく、かなり評判の良いものらしいです。
圧縮が必要な画像ファイル数が多いので、どうしても一括で処理できるツールがほしくて、当初は、このツールをそのままターミナルから利用しようかと思っておりました。
しかし、都度設定をいじったりするのが面倒そうなのと、コマンド自体のオプションがいくつかあり、それぞれどのような効果があるのか、テストしてみないと分からなかったので、少し敷居が高そうだなぁと思っていたところ、「pngyu」を発見したので、ダウンロードして使用することに。
「pngyu」の使い方
使い方が非常に簡単で、ウィンドウに圧縮したいファイルをまとめてドラッグドロップし、右下の「Compress start」ボタンをクリックするだけです。
すると、「ImageOptim」を利用するか確認してきます。
えらく時間がかかったわりに、全く効果がなかった、昨日の記憶が呼び覚まされる名前です。
画像の容量削減のために「ImageOptim」を使ってみた - GADGET FACTORY 雑記帳
ここは当然「NO」を選んでスタートします。
順調に進行していき、昨日と同じ370ファイルが、およそ5分で減色処理終了。
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」のおかげで、何とか対処することができました。
制作された方には、非常に感謝いたします。