iPhoneで撮影した画像をwebpに変換して軽量化したいので、既存のライブラリを組み合わせてHEIFからWebPに直接変換するスクリプトを書いてみました。
HEIFをWebPに変換するには一旦HEIFをjpegに変換して、その後WebPに変換する必要がある。
以下の2つのアプリをインストールしてスクリプト内で使用する
brew install libheif
brew install webp
実際のスクリプトは以下です
#!/bin/bash
# 引数のチェック
if [ $# -lt 1 ]; then
echo "Usage: $0 <file or directory> [quality]"
exit 1
fi
# 画質の設定、デフォルト80
quality=${2:-80}
# 引数がディレクトリの場合
if [ -d "$1" ]; then
for file in "$1"/*.heic; do
# HEICをJPEGに変換
heif-convert "$file" temp.jpg
# JPEGをWebPに変換
cwebp -q $quality temp.jpg -o "${file%.heic}.webp"
done
# 一時ファイルの削除
rm temp.jpg
# 引数がファイルの場合
elif [ -f "$1" ]; then
# HEICをJPEGに変換
heif-convert "$1" temp.jpg
# JPEGをWebPに変換
cwebp -q $quality temp.jpg -o "${1%.heic}.webp"
# 一時ファイルの削除
rm temp.jpg
else
echo "$1 is not a valid file or directory"
exit 1
fi
以下のように使用します
# スクリプトに実行権限を与える(初回のみ)
chmod +x heif-to-webp.sh
#ディレクトリと画質を指定して実行
sh heif-to-webp.sh ~/YourDirectory 30
gitリポジトリ
富山在住のプログラマー。
フルリモートで働いています。
Categories
AWS
Cloudflare
Docker
Github
go
html
JavaScript
microCMS
MySQL
Monthly Archives
2024/12 (1)
2024/11 (3)
2024/10 (1)
2024/09 (3)
2024/08 (7)
2024/07 (7)
2024/06 (4)
2024/05 (5)
2024/04 (6)