WebPを使おう

Webで使う画像は、可逆圧縮ならPNG、非可逆圧縮ならJPEG、アニメーションならGIFなどといわれてきた。しかし、現在は、すべてに対応するWebP(ウェッピー)という形式がある。性能はPNGやJPEGより良く、GIFのように256色に限定されない。主要ブラウザはすべてWebPに対応している。og:image や twitter:image もWebPが使える

従来形式からの変換は ImageMagickmagick コマンド)が便利である。Homebrewの入ったMacなら brew install imagemagick で入る。

PythonのMatplotlibでロスレスWebPを出力する方法はプロットのページに書き加えた。画像テストページにもロスレスWebPの例を追加した。

JPEGから非可逆WebPへの移行

magick foo.jpg foo.webp

デフォルトでは元JPEGの品質が保たれるようだ。

bash/zshでカレントディレクトリの全 *.jpg ファイルに適用するなら

for f in *.jpg; do magick "$f" "${f%.jpg}.webp"; done

とする。以下も同様。

PNGから可逆WebPへの移行

magick foo.png -define webp:lossless=true -define webp:method=6 foo.webp

圧縮法を指定する数字は0〜6で、6が最高(ファイルサイズ最小)、デフォルトは4である。

画質が劣化していないことを確認するには magick compare -metric AE foo.png foo.webp null: と打ち込む。すべてのピクセルが一致していれば 0 (0) と出力される(括弧内はピクセルあたりの差らしい)。

PNGから非可逆WebPへの移行

magick foo.png -quality 85 foo.webp

品質のデフォルトは75のようだ。