綾小路龍之介の素人思考

[imagemagick] 画像の連結

convert を使って 2 つの画像を連結する。Image Stack を使うことで複雑な連結も思いのまま。

両方のサイズが同じ場合は convert で。2 枚の画像を左右に連結する場合は下のようにする。指定する順番は左画像、右画像、出力画像の順番。

$ convert +append hoge_19.png hoge_20.png hoge_19-20.png

上下に連結する場合は下のようにする。2 枚の画像を指定する順番は上画像、下画像、出力画像の順番。

$ convert -append hoge_19.png hoge_20.png hoge_19-20.png

それぞれの画像に個別に適当な処理を行った上で最終的に連結処理をしたい。中間ファイルを作るのも 1 つの方法だが、Image Stack を使ってみる。例えば、hoge_01.jpg を 50% に縮小、hoge_02.jpg を 25% に縮小、これらを上下に連結することを考える。-geometry は "Image Setting" で -append は "Image Sequence Operator" なので以下のように書ける。出力された hoge_.jpg の横幅は 1632/2=816 と 1632/4=408 の長いほうになり、縦幅は 1224/2+1224/4=918 になっていることが確認できる。

$ convert -verbose \( -geometry 50% hoge_01.jpg \) \( -geometry 25% hoge_02.jpg \) -append hoge_.jpg
hoge_01.jpg JPEG 1632x1224 1632x1224+0+0 8-bit DirectClass 307KB 0.280u 0:00.290
hoge_02.jpg JPEG 1632x1224 1632x1224+0+0 8-bit DirectClass 500KB 0.310u 0:00.320
hoge_01.jpg=>hoge_.jpg JPEG 1632x1224=>816x918 816x918+0+0 8-bit DirectClass 115KB 0.240u 0:00.250

"Image Stack" は入れ子状に使うことができる。以下のように書くことで、hoge_00.jpg と hoge_01.jpg を上下に連結したものと、hoge_02.jpg と hoge_03.jpg を上下に連結したものを、左右に連結することができる。

$ convert -verbose \
 \( \( -geometry 50% hoge_00.jpg \) \( -geometry 25% hoge_01.jpg \) -append \) \
 \( \( -geometry 50% hoge_02.jpg \) \( -geometry 25% hoge_03.jpg \) -append \) \
 +append hoge_.jpg
hoge_00.jpg JPEG 1632x1224 1632x1224+0+0 8-bit DirectClass 293KB 0.280u 0:00.289
hoge_01.jpg JPEG 1632x1224 1632x1224+0+0 8-bit DirectClass 307KB 0.290u 0:00.289
hoge_02.jpg JPEG 1632x1224 1632x1224+0+0 8-bit DirectClass 500KB 0.300u 0:00.300
hoge_03.jpg JPEG 3264x2448 3264x2448+0+0 8-bit DirectClass 1.6MB 1.250u 0:01.329
hoge_00.jpg=>hoge_.jpg JPEG 1632x1224 1632x1224+0+0 8-bit DirectClass 381KB 0.650u 0:00.690

一般に 2 枚以上の画像をタイリングするには monterge を使うらしい。

リファレンス

  1. ImageMagick で画像を結合する. - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -
  2. ImageMagick
  3. 画像編集の方法いろいろ: 複数ファイルを複数段で結合(ImageMagickコマンドサンプル)
  4. imagemagick 連結|結合 - Google 検索

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-05-02T17:24:56+09:00
  2. Modified: 2009-05-02T17:24:56+09:00
  3. Generated: 2017-01-03T23:09:27+09:00