コマンドラインで画像サイズとファイルサイズを一括変更

ImageMagick の Mogrifyコマンドで画像サイズとファイルサイズを一括変更して上書き保存する方法です。

画像ファイル確認

$ identify *.{jpg}
full_hd_nature_background_wallpaper.jpg JPEG 1600x1000 1600x1000+0+0 8-bit sRGB 414KB 0.000u 0:00.000
hd-nature-images-13.jpg[1] JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 514KB 0.000u 0:00.000
ZVswkUx.jpg[2] JPEG 1080x675 1080x675+0+0 8-bit sRGB 132KB 0.000u 0:00.000

画像サイズ1200以下、ファイルサイズ100kb以下に一括上書き変更。

$ for x in *.jpg; do mogrify -resize "1200x>" -define jpeg:extent=100kb $x; done

結果 1200以上のファイルは画像サイズとファイルサイズが調整され、1080のファイルはファイルサイズのみ調整されている。

$ identify *.{jpg}
full_hd_nature_background_wallpaper.jpg JPEG 1200x750 1200x750+0+0 8-bit sRGB 99.1KB 0.000u 0:00.000
hd-nature-images-13.jpg[1] JPEG 1200x675 1200x675+0+0 8-bit sRGB 96.7KB 0.000u 0:00.000
ZVswkUx.jpg[2] JPEG 1080x675 1080x675+0+0 8-bit sRGB 97.8KB 0.000u 0:00.000

サイズ800以下、ファイルサイズ300kb以下にする例。

$ for x in *.jpg; do mogrify -resize "800x>" -define jpeg:extent=300kb $x; done