この時期は寒くてエアコン暖房必須です。少し前にSNSで「寝るとき暖房つけるか、つけないか」の質問をしたところ、30弱の票が集まり「暖房つけない」のほうが若干多かったです。 私は寒い時にエアコンも加湿器もガンガンに「つける」ので、個人的に衝撃の結果でした。
最近Imagemagickのコマンドと少しお友達になれたので、その内容について書いていきます。
convertコマンドを1回で実行する理由
その方が処理が早いためです。 ですが、ネットで参考にさせていただいた記事だと、convertコマンドで画像を何回かに分けて生成し、最終的な画像を生成しているものが多かったです。生成する画像
複数の画像処理を一括で行うため、今回はこれら2つの画像を使用することにします。(「いらすとや」さん、ありがとうございます。https://www.irasutoya.com/)すごい勢いで土下座をする人(syazai.png)
とても怒っているカバ(kaba.png)
カンの良い方はもうお気づきかと思いますが、「怒ったカバに向けて全力で謝罪をする人」という構図の画像を生成します。作業場所は上記2枚の画像を置いたディレクトリ内で、画像の生成先も同じ場所です。
コマンド作成手順は、1. kaba.pngを左右反転、2. syazai.pngを縮小、3. キャンバスの上に1,2を配置(コマンド1回で実行)、です。
convertコマンドを1回で実行する
1.kaba.pngを左右反転convert kaba.png -flop output1.png2.syazai.pngを縮小
convert syazai.png -resize 50% output2.png3.キャンバスの上に1,2を配置(コマンド1回で実行)
convert \( -size 1255x705 xc:white -gravity west \( kaba.png -flop \) -composite -gravity southeast \( syazai.png -resize 50% \) -composite \) output.png
3の実行結果
今後見ることは無いであろう構図です。
コマンドの説明
3のコマンドを、外側から順を追って説明します。convert \( A \) output.png上記は、Aの処理の結果をoutput.pngに出力します。 次にAの中身を見ます。
-size 1255x705 xc:white -gravity west \( B \) -composite -gravity southeast \( C \) -composite-size 1255×705 xc:whiteで、出力する画像サイズと背景白を定義しています。
そして-gravity west ( B ) -compositeで、キャンバスに左寄せでBの画像を出力することを指定しています(-compositeは複数画像を合成する際に使うオプションです)。
-gravity southeast ( C ) -compositeで、キャンバスに右下寄せでCの画像を出力します。
そして、Bは反転したカバ、Cは謝罪してる人の縮小した画像をそれぞれ返します。
最後に
今回はconvertコマンド1回で複数処理を実行する方法を紹介しました。Imagemagickのコマンドは奥が深そうなので、今後も使い方を探索していきたいです。