仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

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;