web-dev-qa-db-ja.com

サイズ変更せずにimagemagickのモンタージュコマンドを使用してタイル画像を接着する

これはかなり一般的な質問のように思えるので、考えられる限り多くのキーワードを使用して質問します!

私はたくさんの(まあ、9つの)タイルJPEGを持っています。各JPEGは220x175ピクセルです。

(top row)
tile_1_0_0.jpg
tile_1_1_0.jpg
tile_1_2_0.jpg
(middle row)
tile_1_0_1.jpg
tile_1_1_1.jpg
tile_1_2_1.jpg
(bottom row)
tile_1_0_2.jpg
tile_1_1_2.jpg
tile_1_2_2.jpg

Imagemagick/montageを使用して「接着」したり、それらをすべて結合して単一のまとまりのある画像を作成するにはどうすればよいですか?まったくサイズを変更したくないので、最終的な画像は660x525になると思います。

これは、フレーミング、シャドウイング、ボーダーなどのないモンタージュです。9つの元の画像を接着して、1つのJPEGを作成します。

私はそれがこれらの線に沿ったものでなければならないことを知っていますが、私は順序とサイズを正しくすることに苦労しています:

montage +frame +shadow +label -tile 3x3 -geometry <options> *.jpg joined.jpg
44
AP257

私は似たようなことをしようとしていて、ここで終わりました(あなたの「できるだけ多くのキーワード」がうまくいったと思います)。これが私のために働いたものです。 (ニーズに合わせて調整されたジオメトリとタイル)

montage -border 0 -geometry 660x -tile 3x3 tile* final.jpg

ファイルは水平にタイルに追加されるので、-tile 4x2、後処理は次のようになります。

1 2 3 4
5 6 7 8

番号は、引数リスト内のファイル名の相対位置です。

私の知る限り、 tile*はアルファベット順に展開されるので、ファイル名を手動で指定するか、名前を変更してから適切にソートされるようにする必要があります。例:

# top row
tile_r0_c0.jpg
tile_r0_c1.jpg
tile_r0_c2.jpg
# middle row
tile_r1_c0.jpg
tile_r1_c1.jpg
tile_r1_c2.jpg
# bottom row
tile_r2_c0.jpg
tile_r2_c1.jpg
tile_r2_c2.jpg
37
kch

デイブの解決策は私にとってうまくいかなかったので、私はより良い答えを見つけました ここ 。これを試して:

montage -mode concatenate -tile 3x3 tile*.jpg result.jpg

2番目の「3」がなくても機能します

montage -mode concatenate -tile 3x tile*.jpg result.jpg

windowsユーザー向けの完全な行は次のとおりです。

"C:\Program Files\ImageMagick-6.8.0-Q16\montage.exe" -mode concatenate -tile 3x tile*.jpg result.jpg

(もちろん、独自のバージョンのImageMagickで「6.8.0-Q16」を変更してください)

29
BearCode

私はそのようなタスクにこの最小限のコマンドを個人的に使用しています:

montage tile*.jpg -tile 3x3 -geometry +0+0 output.jpg

geometry +0+0はボーダーを追加せず、各画像の元のサイズを維持します(非常に推奨されるオプション)。

0
gluuke