Webで使う画像は、可逆圧縮ならPNG、非可逆圧縮ならJPEG、アニメーションならGIFなどといわれてきた。しかし、現在は、すべてに対応するWebP(ウェッピー)という形式がある。性能はPNGやJPEGより良く、GIFのように256色に限定されない。主要ブラウザはすべてWebPに対応している。og:image や twitter:image もWebPが使える。
従来形式からの変換は ImageMagick(magick
コマンド)が便利である。Homebrewの入ったMacなら brew install imagemagick
で入る。
PythonのMatplotlibでロスレスWebPを出力する方法はプロットのページに書き加えた。画像テストページにもロスレスWebPの例を追加した。
magick foo.jpg foo.webp
デフォルトでは元JPEGの品質が保たれるようだ。
bash/zshでカレントディレクトリの全 *.jpg ファイルに適用するなら
for f in *.jpg; do magick "$f" "${f%.jpg}.webp"; done
とする。以下も同様。
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)
と出力される(括弧内はピクセルあたりの差らしい)。
magick foo.png -quality 85 foo.webp
品質のデフォルトは75のようだ。