#画像をwebp(ウェッピー)に変換するシェルを作ってみる
##Googleが開発した○○.webpっていう規格がある。
軽量化されてページリロードが速くなる。
サイトスピードテストでもwebpを使用していると点数が上がるとか上がらないとか言われてますね
普段当たり前に使っていたけど、便利だなと思ったので普段自分が使っているものを紹介
このシェルはいろんなところで紹介されている?かもしれないが、環境によって若干書き方変わったりするかも。
自分が普段使ってるコードは下記
#!/bin/bash
#webp.sh
DIR="public/images"
JPEG_CWEBP_OPTS="-q 75 -m 4"
PNG_CWEBP_OPTS="-lossless"
CWEBP="/usr/bin/cwebp"
cd $(dirname $0)
shopt -s nocasematch
find $DIR -type f -regextype posix-extended -iregex ".*\.(jpe?g|png)$" -print0 | \
while IFS= read -r -d '' SRC; do
WEBP="$SRC.webp"
if [[ ! -e $WEBP || $SRC -nt $WEBP ]]; then
if [[ $SRC =~ \.jpe?g$ ]]; then
echo "Convert to lossy WebP: $SRC"
"$CWEBP" $JPEG_CWEBP_OPTS "$SRC" -o "$WEBP"
elif [[ $SRC =~ \.png$ ]]; then
echo "Convert to lossless WebP: $SRC"
"$CWEBP" $PNG_CWEBP_OPTS "$SRC" -o "$WEBP"
fi
fi
done
DIR="public/images"
対象ディレクトリを指定する。
public/imagesの画像をwebpに変換する
CWEBP="/usr/bin/cwebp"
って書いてあるからわかると思うけど、cwebpってやつがないと動かないので入れる。
yum install libwebp-tools
$ which cwebp
/usr/bin/cwebp
うん、入った。
これで対象ディレクトリにpngとかjpgの画像配置して、このシェルを動かすと画像を変換して元画像と同階層に保存される。
これをwebサーバーに設置してクーロンで1日置きに変換するとか自動化したらまぁ便利。
でも、エラー検知のhooksはつけるべきだと思います。
ログが溜まってサーバー圧迫しないようにだけ注意してればとてもうれしくなれます。
以上です。