Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Glueing tile images together using imagemagick's montage command without resizing

This seems like it might be a reasonably common question, so I'm going to ask it using as many keywords as I can think of!

I have a bunch of (well, nine) tile jpegs, with standard tile filenames. Each jpeg is 220x175 pixels:

(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 

How can I use imagemagick/montage to 'glue' or join them all together to make a single, coherent image? I don't want to resize them at all, so I guess the final image should be 660x525.

That would be montage with no framing, shadowing, bordering, etc - just the nine original images, glued together to make a single jpeg.

I know it should be something along these lines, but I'm struggling with getting the order and sizing right:

montage +frame +shadow +label -tile 3x3 -geometry <options> *.jpg joined.jpg 
like image 400
AP257 Avatar asked May 17 '10 22:05

AP257


2 Answers

I was looking to do something similar and ended up here (I guess your "as many keywords as possible" thing worked). Here's what I came up with that worked for me. (geometry and tile adjusted for your needs)

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

The files get added to the tiles horizontally, so, for -tile 4x2, the disposition would be:

1 2 3 4 5 6 7 8 

The numbers being the relative positions of the filenames in the argument list.

As far as I can tell, tile* will expand alphabetically, so you should either specify your filenames manually, or rename then so that they'll sort appropriately, e.g.:

# 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 
like image 117
kch Avatar answered Oct 19 '22 08:10

kch


Dave's solution didn't work for me, so I found a better answer here. Try this:

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

it also works without the second "3"

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

the complete line for Windows users is:

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

(change the "6.8.0-Q16" with your own version of ImageMagick, of course)

like image 42
BearCode Avatar answered Oct 19 '22 09:10

BearCode