時系列で画像を作成した時や,様々な条件で画像を作成した際に複数枚の画像ファイルを1ファイルにまとめたいことがしばしばあります.時系列画像の場合なら,gifアニメを作るのも1つの手です.が,複数ページの図に出来ないかなと思っていたところ,PDFにしたら出来るんじゃないか!?と思ったら出来ちゃいました.やり方は,
convert *.png hoge.pdf
これだけ.特段のオプションは必要なく,1画像1ページのPDFが出来上がりました.流石 ImageMagick.流石 convert.
ついでに紹介(こちらの方が長文).複数の画像ファイルを縦横に並べて1枚の画像にしたい場合は,montage が使えます.
montage *.png hoge.png
ただし,縦横の枚数は適当に調整してくれますが,1つ1つの画像が非常に小さくなってしまいます.これを避けるために,最低限
montage -tile (横)x(縦) *.png -geometry (X)x(Y) hoge.png
位は知っておいて損は無いでしょう.基本的に私の場合は,identify で元の画像ファイルのサイズを調べて,そのまま geometry に指定しています.この geometry は,出来上がりの hoge.png の画像サイズではなく,並べられる元の画像のサイズなので注意が必要です.
-tile オプションは,(横)のみの指定や(縦)のみの指定も,(横)x や x(縦) などとして可能です.例えば, -tile 1x として実行すれば縦にずらっと並びます.また,(横)x(縦) よりも多くの入力ファイルが指定されている場合は, hoge-#.png のようにナンバリングされて出力されます.それをさらに convert でPDF1枚に仕上げることも出来ます.
複数の画像ファイルを1つにまとめる方法
単にサイズの異なる画像を並べるだけなら,以下で出来ます.
$ convert -append 上画像 下画像 出力画像
$ convert +append 左画像 右画像 出力画像
convert *.png hoge.pdf
これだけ.特段のオプションは必要なく,1画像1ページのPDFが出来上がりました.流石 ImageMagick.流石 convert.
ついでに紹介(こちらの方が長文).複数の画像ファイルを縦横に並べて1枚の画像にしたい場合は,montage が使えます.
montage *.png hoge.png
ただし,縦横の枚数は適当に調整してくれますが,1つ1つの画像が非常に小さくなってしまいます.これを避けるために,最低限
montage -tile (横)x(縦) *.png -geometry (X)x(Y) hoge.png
位は知っておいて損は無いでしょう.基本的に私の場合は,identify で元の画像ファイルのサイズを調べて,そのまま geometry に指定しています.この geometry は,出来上がりの hoge.png の画像サイズではなく,並べられる元の画像のサイズなので注意が必要です.
-tile オプションは,(横)のみの指定や(縦)のみの指定も,(横)x や x(縦) などとして可能です.例えば, -tile 1x として実行すれば縦にずらっと並びます.また,(横)x(縦) よりも多くの入力ファイルが指定されている場合は, hoge-#.png のようにナンバリングされて出力されます.それをさらに convert でPDF1枚に仕上げることも出来ます.
複数の画像ファイルを1つにまとめる方法
- convert で pdf にする(1画像1ページのPDFになる)
- convert で gif にする(gifアニメになる)
- montage で並べる
まだ他にもありそうですが,今知っている方法はここまで.
単にサイズの異なる画像を並べるだけなら,以下で出来ます.
$ convert -append 上画像 下画像 出力画像
$ convert +append 左画像 右画像 出力画像