JPEG画像の上下左右に余白を設ける
表題のとおり、(目的のサイズよりも縦横ともに小さいが)縦横のサイズが不定な不特定多数のJPEG画像を、全て同じ大きさの画像サイズに変換したい。元の画像は目的のサイズよりも必ず縦横どちらも小さいので、変換によって発生する余白は全て白にしたい。
「ImageMagickを使えば一発だろ」と思って久々に使ってみたけど、いまいちスマートな解決方法がわかりませんでした……。
Convertコマンドの-thumbnailオプションで出来ると思ったんだけど、どうも背景色と画像の位置指定がうまくいかない……、そもそもサムネールじゃないから?!
とりあえず、目的のサイズで白の単色画像を用意して、その背景画像と合成するという方法で解決しました。
$ convert -size 680x400 xc:"#FFFFFF" background.jpg $ for IMG in $(ls image_*.jpg); do composite -gravity Center -compose Over $IMG background.jpg test_${IMG}; done;