画像サイズを小さくできるWebPフォーマットについて
地図アプリである「東京周辺マップ」のアプリケーションサイズは、大きい部類です。これは、地図画像をアプリケーション内に保持しているためです。東京周辺マップにおける画像のアプリケーションに占める割合は、ver 0.60においては「85%」にも及んでいます。(東京周辺マップは事情により公開中止しました)
このような状況なので、「Google Play Console」で最適化の通知が出ていました。その中に「WebP」についての通知がありました。
必要に応じた WebP 画像形式の使用
WebP 形式を使用すると画像のサイズを縮小できます。JPG 以外の画像は可逆圧縮の WebP に変換し、JPG 画像は非可逆圧縮の WebP に変換してください。変換ツールを使用すれば、結果をプレビューで確認し、解像度への影響を抑えながらファイルサイズを大幅に削減できるよう品質レベルを調整できます。一般に WebP 画像のサイズは同等の JPG より 25~34% 小さくなります。
この通知を見ると、WebP画像形式を使うことによって画像サイズの削減が期待できそうです。試しに対応してみました。
1.WebPフォーマットについて
WebP(うぇっぴー)フォーマットは、2010年からgoogleによって提供されている画像フォーマットです。画像サイズを抑えながら画像のクオリティを保つことができる優れたフォーマットですが、普及に関しては今一つです。
しかし今回はアプリケーション内で扱うので、動作環境の心配はありません。サイズが指摘通り小さくなるのであれば、万々歳です。
2.WebPフォーマット画像の作り方
WebPに関してのgoogleの正式サポートサイトを利用します。
サイト内にWebPのエンコードやデコードを行うライブラリが提供されています。
google以外でも、Adobeツールのプラグインや、変換サイトなどでWebP画像を作成できます。
また、Android Studioを使うと、簡単にWebPフォーマット画像が作成できちゃいます。よって今回は、Android Studioを使います。
3.Android Studioを使ったWebPフォーマットへの変換方法
Android Studioを使えば、実に簡単にWebPフォーマット画像が作れます。
画像を選択して右ボタンメニューを表示する
WebPフォーマットへ変換したい画像を選択して、マウスの右ボタンメニューを表示します。その右ボタンメニューの1番下にある(3.3.2時点)「Convert to WebP..」を選択します。
クオリティなどを設定する
設定ダイアログが表示されるので、それぞれ項目を設定します。クオリティの変更や、元の画像サイズよりも大きくなる場合は変換しないなどの設定があります。
設定が完了したら、「OK」を押して次に進みます。
WebPフォーマットへの変換実行
最終確認のダイアログが表示されます。ダイアログ内には、変換前と変換後の画像が表示されています。また、変換後の画像サイズも表示されていて、クオリティを変えるスライダーを操作することにより変換後の画像サイズを変更できます。
設定が終了したら、「Finish」のボタンを押してください。変換が実行されます。
4.実行結果は?
実行してみると、東京周辺マップで使う画像に関しては、ほぼ効果がないことが分かりました。これは、すでにPNG画像の圧縮処理を行っているせいかもしれません。
さらに、サイズが元よりも大きくなる画像も結構あるため、WebPの対応は辞めた方が良さそうです。google play consoleでは「8Mbyte」の削減効果と表示されていますが、これは一般的な例をもとに算出された値でしょう。
このように、今回は画像サイズ削減に効果がなかったWebPフォーマットの利用ですが、一般的には効果を発揮する場合も多いと思うので、覚えておくと良いでしょう。