複数枚ある画像を全て掛け合わせて2枚を横並びにして出したいということがありました。Photoshopのアクションでできるかと思ったのですが、できなかったのでどうしたら良いか調べたところ「imagemagick」ならできるということだったのでやってみました。
環境はMac
やりたいこと
画像がフォルダ内に、A.png,B.png,C.png…..X.png,Y.png,Z.pngとある場合A+A,A+B,A+C……Z+Y,Z+Zのように横並びにしていきたいです。(A+Aはいらないが、いらなかったら消せばいいのでとりあえず重複込みを想定でサクッとプログラムを作って書き出したい)
上記イメージが完成予定です。
準備
調べた結果、Photoshopのアクションでは出来なさそう、Pythonではできそうだけどプログラムを作るのが面倒そう、imagemagickならコマンドラを打つだけでなんか簡単にできそう。(結構調べることになりましたが。)という結果だったのでimagemagickで画像横並びを自動で実施できるようにしようと思います。
imagemagickをインストール
HomeBrewを使ってimagemagickをインストール可能ということでHomeBrewのインストールがまだの場合はHomeBrewをインストール
$ brew -v
imagemagickをインストール
$ brew install imagemagick
ちゃんと入ったか確認。
$ convert -version
imagemagickを実行
あとはコードを打ち込んでターミナルで実行するだけで自動で横並び画像を作ってくれます。
arr=(ls *.png
)
num=${#arr[*]}
for ((i=0; i<num; i=i+1)); do
for ((j = 0; j < num; j=j+1)); do
convert ${arr[$i]} ${arr[$j]} +append image_${i}_${j}.png
done
done
おわり
コピペで済むかと思いきやなかなか誰もやっていなかったので、結局自作することになりました。2次元ループの書き方がわからず、時間がかかりましたが、わかれば簡単に作れました。
参考元:https://www.imagemagick.org/discourse-server/viewtopic.php?t=33814