ImageMagickのconvert
コマンドを使って画像をresize & cropする方法を調べてみました。
アスペクトを維持して画像全体が含まれるようにリサイズ
$ convert -resize 200x200 -gravity Center -extent 200x200 src.jpg dst.jpg
CSSのbackground-size:contain
のような感じです。-gravity Center
はリサイズ後の配置に影響します。NorthWest
/North
/NorthEast
/West
/Center
/East
/SouthWest
/South
/SouthEast
が使えます。
アスペクトを無視してリサイズ
$ convert -resize 200x200! -extent 200x200 src.jpg dst.jpg
アスペクトを維持して余白がないようにリサイズ
$ convert -resize 200x200^ -gravity Center -extent 200x200 src.jpg dst.jpg
CSSのbackground-size:cover
のような感じです。切り取る部分を変更したい場合は-gravity Center
の部分を変更してみてください。
Windows環境で200x200^
がうまく動作しない場合は200x200^^
を試してみるとうまく動作する場合もあるみたいです。