WebP自動変換スクリプトの落とし穴
2026.08.07 09:00
2026.08.07 09:00
JPEGやPNGをWebPへ自動変換する処理は数行で書けますが、運用すると再圧縮、透過画像の変色、同名ファイルの上書きが起きました。
出力を入力にしない
入力と出力を分け、対象形式を明示します。
find src/images -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) -print0
photo.jpgとphoto.pngをphoto.webpへ変えると衝突します。入力構造を保持するか、衝突をエラーにします。「出力があればスキップ」だけでは元画像更新を見逃すため、内容ハッシュと変換条件をキャッシュキーにします。
容量以外も検査する
EXIFの向き、PNGのアルファ、ICCプロファイル、アニメーション、小さい画像の容量増加を確認します。写真と図版を同じ品質値で処理しないほうが安全です。
一つでも失敗したら非ゼロで終了し、ファイル名を出します。生成後は形式、寸法、アルファの有無を機械検査し、代表画像を目視比較します。重要なのは変換コマンドより、再実行しても壊れず、漏れと上書きを検出できる設計でした。
今回は以上です。