Imagemagickを使用したバッチサイズ変更のためのBashスクリプト

Imagemagickを使用したバッチサイズ変更のためのBashスクリプト

多数の画像をJPEGに変換する必要があります。これらの画像の一部は720px×480px、一部は300x400、一部は2000x1400、一部は1000x1000などです。 1000×1000で画像に触れることなく、この画像のサイズを1000×1000に調整します。

ここでは、各画像(wxh)の合計サイズを計算する小さなスクリプトを作成しようとしています。ただし、すべての画像を1000×1000に変換して1000×1000の画像を除外するには、ifステートメントを追加する必要があります。

for image in *.jpg; do
IFS=x 
read w h < <(identify "$image" | grep -oP '\d+x\d+(?=\+)')  
echo $((w*h)) "$image"
done

ベストアンサー1

fx演算子を使用して、以下に基づいて画像をフィルタリングできます。高い&例えば

identify -format '%[fx:(h=1000 && w=1000)]\n' image.jpg

1画像が正しい場合は1000x1000出力し、それ以外の場合は出力します0
したがって、次のように実行できます(convert必要に応じてコマンドを調整します)。

for image in ./*.jpg; do
identify -format '%[fx:(h=1000 && w=1000)]\n' "$image" | grep -q 0 \
&& convert -resize 1000x1000 "$image" "${image%.*}"-converted.jpg
done

おすすめ記事