2017年04月08日

ImageMagickのborderでハマった

ImageMagickのborderは、元の画像の回りに線を足す処理をするらしく、
元の画像より一回り大きい画像が出力される。
元の画像の大きさを変えずborderを足そうとしてハマったのでメモ。

処理する画像一枚ならば
convert
 in.png
 -crop 96x96
 -border 2x2
とかってやればいいんだけど、サイズの違う画像を一括で処理したい時は使えない。

んで画像のX,Yを表す変数が使えれば
mogrify
 -path ./directry
 -crop X-4xY-4+2+2
 -border 2x2
 *.png
で解決じゃーんとおもってリファレンスとかいろいろ漁ったが、
どうもこういう変数はないっぽい……(できるのかな?)

んで、どーしよーかなシェルスクリプトってやつを書くしか無いんかなと困っていた所。
次のような書き方を閃いた。
mogrify
 -path ./directry
 -crop 9999x9999+2+2
 -rotate 180
 -crop 9999x9999+2+2
 -rotate 180
 -border 2x2
 *.png

上と左だけ切り取って、180度回しておんなじことをもう一回。
9999の部分は画像の最大より大きければなんでもおk。右下に余白が出ることはない。

うーん。もうちょっとエレガントにできそうなもんだけど。
何はともあれ出来たから良しとしよう。
ウド | 2017/04/08 14:27
"ImageMagickのborderでハマった"へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]