画像の容量削減のために「ImageOptim」を使ってみた
Androidアプリのapkファイルの容量制限に引っかかっている現在開発中のアプリ。
「Apk拡張ファイル」を使わない方向で、何とか容量内に収まらないかと考え画像などのリソースファイルの容量削減のテストを行っております。
まず最初に使ってみたのは、画像の品質を落とす事なく、容量を削減できるツール「ImageOptim」。
ImageOptim — better Save for Web
PNGやJPEGの画像データを触るのではなく、添付されている不要なメタデータを削除してくれるツールです。
無料のツールなので、気軽にテストできます。
画像データの削除率自体はそれほど多くないのですが、画像の品質を落とさないということなので、期待しつつ試してみました。
ImageOptimの使い方
使い方は非常に簡単で、容量削減したいファイルをまとめて、ウィンドウにドラッグドロップするだけ。
すると、変換が自動的に始まります。
テストで370ファイルを変換してみる
画像リソースのうち、少し大きめの画像370ファイルを、テストで変換してみることに。
ちなみに、当方のマシンのスペックは以下の通りです。
Macbook Pro 15-inch Early 2011
Intel Core i7 2.2GHz
Memory: 8GB
HDD: 750GB(ST9750420AS SATA 7200回転)
[asin:B00MPWQ6QI:image]
[asin:B00MPWQ6QI:title]
画像変換中は、特に他の作業を行っておりませんでした。
変換を開始してから、変換が終了するまでに要した時間は、およそ1時間30分程度。
おそろしく時間がかかりました。
削減した結果は以下の通りです。
108.6MBのうち、17.7MBを節減、1ファイル平均で16.7%の節減率です。
何か、時間をかけた割には微妙な感じです。
せめて、30%ぐらいは減ってほしかったというのが、正直な感想です。
画像ファイルを組み込んでみる
さて、削減された画像ファイルを、実際のプロジェクト(Flash)に組み込んでみました。
プロジェクトの元の fla ファイルにのサイズを比較してみると、
変換画像組み込み前:649.1MB
変換画像組み込み後:631.4MB
実際に削減できた容量分だけ、ファイルサイズは小さくなっていました。
さて、いよいよ本題。
このfla ファイルから、Android用の apk ファイル(Adobe AIRファイル)をパブリッシュした際に、一体どれだけ減ってくれるのか。
最終 apk ファイルでの効果のほどは?
前の段階での apk ファイルの容量は 110.6MB でした。
期待を込めつつ、apkファイルをパブリッシュしてみた。その結果は
110.6MB
一切の変化なし。
がっくりです。
1時間半もかけた結果が、成果0というのは、かなり厳しい結果。
おそらく、Flash がパブリッシュする際に、画像データに含まれている不要なメタデータなどは、勝手に削除して容量を減らしてくれるのではないかと思われます。
従って、メタデータを削除する「ImageOptim」は、Flash に取込む画像については、最終的なパブリッシュ後のファイルに対しては全く効果がでないということのようです。
そうなると、やはり画像データ自体の容量を減らす、減色処理などが必要ということになってきます。
Flash のapkファイルについては、役に立たなかったので、おそらく swf ファイルでも同じ結果になるのではないかと思います。
ただ、画像ファイルを直接表示するWEBページなどに利用する場合は、画質を落とさずに容量を減らせる「ImageOptim」を使う意味はあると思います。