Google製のcwebpというWebP用の変換アプリがあり、これを使うとWebPへの一括変換を手軽に行える。

以前はSquoosh CLIというNPMパッケージが使えた。現在もNode.js 16をインストールすれば使えるが、メンテナンスされていないので代替を探すのが無難である。

下準備

下層ページから入り、文章をろくに読まずに作業したせいで遠回りした。環境別にプリコンパイルされたライブラリが用意されているので、これをダウンロードしてパスを設定すれば"cwebp"は使えるようになる。以下の手順はスキップして良い。

なお、この手順はmacOSを前提としている。

  1. MacPortsを入手する(2024年3月時点では"MacPorts-2.9.1-14-Sonoma.pkg")。
  2. sudo port selfupdateでMacPostsを更新する
  3. sudo port install jpeg libpng tiff giflibで依存関係をインストールする
  4. ここから"libwebp-1.3.2.tar.gz"をダウンロードする。
  5. 回答したディレクトリで以下のコマンドを実行する
bash
cd libwebp-1.3.2
./configure
make
sudo make install

これでcwebpが使えるようになる。

画像を一括でWebpに変換するコマンド

cwebpは、Squoosh CLI と違って1度に1つの画像しか処理してくれない。一括で変換するには適当なシェルスクリプトを書く必要がある。

たとえばJPGからWebPに変換する場合は以下のようにする。

bash
for file in *.jpg; do
    cwebp -q 80 "$file" -o "${file%.jpg}.webp"
done

オプションの一覧はこのページにある。

参考資料