WebPについて

WebPは2010年にGoogleが仕様を公開した画像フォーマットで、非可逆圧縮/可逆圧縮どちらも使用可能で、アルファチャンネル(半透明)も扱えて、ファイルの容量が小さい便利な画像フォーマットです。

主要ブラウザのWebP対応状況

chrome

Googleが作成したフォーマットのため早い時期から利用可能だった

safari

2020年9月にはiOSのsafari
2022年の9月にはmacのsafariに対応された

firefox

2019年1月に対応された

edge

2018年9月に対応された

ブラウザについて まとめ

2022年頃まではmac safariが非対応だったため、メインで使用するのが難しい難しい場面もありましたが
2022年の9月にはmacのsafariにも対応され、主要ブラウザ全てで表示可能になりました。(参照:Can I use

積極的にWebPを使用していきましょう!

WebPを使えると何が嬉しいのか

webアプリでの画像使用時に、以下を同時に満たすことが可能で便利です。
これまではそのようなフォーマットがなく、複数の画像フォーマットを用途により使い分ける必要がありました。

・フルカラー
・ファイルサイズが小さい
・透過が使える

見た目が綺麗で、ファイルサイズが小さいのはユーザにとっても良いことですね。

▼各フォーマット比較

フォーマット 特徴 主な用途・利用シーン
jpg ・フルカラー
・非可逆圧縮
・透過使用不可
・ファイルサイズが小さい
・透過を使わない場合
→写真
→バナー など
png ・フルカラー
・可逆圧縮可能
・アルファチャンネル使用可能
・アニメーション使用可能
・ファイルサイズが大きい
・半透明を使いたい場合
→色数が多く、かつ透過が必要な画像
png8 ・256色のインデックスカラー
・アルファチャンネル使用可能
・透過使用可能
・ファイルサイズが小さい
・半透明を使いたい場合
→アイコン
→縦横幅が小さい画像(色数が多くても違和感無く見れる) など
・動画ファイルを用いずにアニメーションを使いたい場合
gif ・256色のインデックスカラー
・透過させる色を1色指定可能。半透明使用不可
※元データにアンチエイリアスが使用されている場合は、マットカラーか、ディザリング処理が必要になるので、透過を扱う時は背景色と馴染むように気を使う必要がある
・アニメーション使用可能
・ファイルサイズが小さい
・動画ファイルを用いずにアニメーションを使いたい場合
※2017年頃まで、androidがアニメーションpngに対応しておらず
それまではアニメーションを使う際はgifで対応する必要がありました
svg ・ベクター形式
・複雑なデザインには向かない
・透過使用可能
・ファイルサイズが小さい
・パソコン向け、スマートフォン向け両対応が必要な際に同一の画像ファイルで対応したい場合
→シンプルなアイコン、ボタンなど
・画面を極端に拡大された場合にも綺麗に表示したい場合
webp ・フルカラー
・非可逆圧縮/可逆圧縮選択可能
・透過使用可能
・アニメーション使用可能
・ファイルサイズが小さい
・svgのほうが良い場面を除いて、大半で使用可能

WebPの作り方(一例)

photoshopを使用してデータを作成する

Photoshop での WebP ファイルの操作(公式)

photoshopでwebデザインデータを作成する際に「アセット生成」が非常に便利な機能ですが
アセット生成はWebP作成に対応していないのが惜しいです。
大量の画像データをまとめて変換する場合は後述の「cwebp」を活用する必要があります。(2024年2月時点)

cwebpを使用してデータを作成する

Google公式でコマンドラインツールとコンバーターが用意されています。

macの場合は、brewを使用してコマンドラインツールをインストールすることも可能です。

WebPを使用すると実際どのくらいファイルサイズが小さくなるのか

AIで生成したpng画像(294KB)を用いて比較してみます。

・jpgとgifはImageMagickのconvertを使用
・png8はpngquantを使用
・webpはcwebpを使用

フォーマット 設定 ファイル
サイズ
生成方法
jpg 品質50 28KB convert input.png -quality 50 output.jpg
jpg 品質75 40KB convert input.png -quality 75 output.jpg
jpg 品質100 285KB convert input.png -quality 100 output.jpg
png 294KB ※元画像
png8 64色 66KB pngquant 64 –speed 1 input.png -o output.png
png8 128色 83KB pngquant 128 –speed 1 input.png -o output.png
png8 256色 96KB pngquant 256 –speed 1 input.png -o output.png
gif 103KB convert input.png output.gif
webp 品質50
非可逆圧縮
20KB cwebp -q 50 input.png output.webp
webp 品質75
非可逆圧縮
26KB cwebp input.png output.webp
webp 品質100
非可逆圧縮
83KB cwebp -q 100 input.png output.webp
webp 可逆圧縮 242KB cwebp -lossless input.png output.webp

※見た目上、webp品質75もあれば劣化を感じず綺麗に表示することができます。(個人的所感です)

WebPを利用するにあたり注意すること

動作保証するOSとブラウザの確認

古いOSやブラウザは、webpが対応されていない場合があるので、サービスでサポートしなければならないOSやブラウザをステークホルダーに確認し、必要に応じてwebp以外のフォーマットを併用して画像表示を行いましょう。

ユーザからの画像アップロードを受け付ける場合はWebP以外のフォーマットも受け付ける

WebPがメインで使えるようになっていても、カメラアプリや一般的に使われるフォーマットはjpg、pngがメインとなるのでwebpのみの対応とせず、jpg、pngも受け付けるようにしましょう。
また、容量削減にとことん拘るなら、アップロードされた画像をWebPに変換することも検討しましょう。

画像の品質や使用方法のレギュレーション確認

WebPは非可逆圧縮で作成すれば、ファイルサイズがjpg以上に小さくなりますが、品質によってはノイズが目立つこともあります。
プロジェクトの責任者、ステークホルダーに、基準となる品質と見た目の許容範囲を確認して、データを作成しましょう。