webp備忘録

August 06, 2022

なんか忘れそうだったから書き残しておきます。

参考:
https://qiita.com/tomokei5634/items/64b0f0b2246987936c6f

jpgからwebpへの変換はcwebpを使います。まずcwebpをインストール。brewは事前にインストールしているものとする。

brew install webp

ターミナル上で作業フォルダまで移動して

cwebp -lossless -metadata icc -sharp_yuv 00X.jpg -o 00X.webp

大体これでOK。たまにwebpにすると元のjpgより画像データが大きくなることがあるのでそういう時は

cwebp -q 99 -metadata icc -sharp_yuv 00X.jpg -o 00X.webp

こう。大体品質99でめちゃくちゃ軽くなる。ターミナルを挟まなくても変換してくれるサイトとかあるんだけどカラープロファイルを保持してwebp化してくれるやつが見つからなかったのでこれでやってる。毎回無駄にP3で出力してるから…。

上のコマンドだと1個ずつしか変換できなくてファイル数が多いと時間がかかりすぎるのでシェルスクリプトを組む。ファイル名の変換が上手くいかなかったので上のサイトを参考に若干改造した。

作業フォルダ以下全部.sh
#!/bin/sh
Files=$(find . -type f -iname '*'.jpg)

for File in $Files
do
    echo $File
    cwebp -lossless -metadata icc -sharp_yuv -o ${File%.jpg}".webp" -progress -short $File
    printf "\n----------------\n\n"
done

これは作業フォルダ以下のフォルダに入ってるjpgも全てwebpに変換してしまうので作業フォルダ内のjpgだけ変換したい場合は

作業フォルダ内のみ.sh
#!/bin/sh
Files=$(find . -maxdepth 1 -type f -iname '*'.jpg)

for File in $Files
do
    echo $File
    cwebp -lossless -metadata icc -sharp_yuv -o ${File%.jpg}".webp" -progress -short $File
    printf "\n----------------\n\n"
done

という感じ。シェルスクリプトは作業したいディレクトリに飛んでから実行する。Windowsでシェルスクリプトが使えるかは知らない…。今なら使えるのかな。


Profile picture

オタクの日記です。