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

ImageImagemagickTiles

Image Problem Overview


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

Image Solutions


Solution 1 - Image

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

Solution 2 - Image

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)

Solution 3 - Image

I personally use this minimal command for such tasks:

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

geometry +0+0 will not add any border and conserve the original size of each image (a very much advised option).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAP257View Question on Stackoverflow
Solution 1 - ImagekchView Answer on Stackoverflow
Solution 2 - ImageBearCodeView Answer on Stackoverflow
Solution 3 - ImagegluukeView Answer on Stackoverflow