2010-05-17 127 views
43

这似乎可能是一个相当常见的问题,所以我会用尽可能多的关键字来问它!使用imagemagick的蒙太奇命令一起粘贴平铺图像而不调整大小

我有一堆(好,九)瓷砖jpegs,标准瓷砖文件名。每个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的/蒙太奇“胶水”或加入他们一起做一个单一的,连贯的形象吗?我不想调整它们的大小,所以我想最终的图像应该是660x525。

这将是蒙太奇没有框架,阴影,接壤等 - 只是九个原始图像,粘在一起,使一个单一的JPEG。

我知道这应该是沿着这些线路的东西,但我刚刚接到订单和浆纱右挣扎:

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

也可能相关:[从蒙太奇(ImageMagick)复合图像中删除额外的tilepace? - Unix and Linux](http://unix.stackexchange.com/questions/4046/remove-extra-tilespace-from-a-montage-imagemagick-composite-image/63463#63463) – sdaau 2013-02-02 16:36:25

回答

35

我一直在寻找做同样的事情,并在这里结束了(我想你“尽可能多的关键字“的工作)。这就是我为我工作的原理。 (几何和瓷砖调整您的需求)

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 
+0

我假设'660x'是最终尺寸(3张图片,每张220px)。从阅读[示例](http://www.imagemagick.org/Usage/montage/#geometry_size),我认为'-geometry'标志将每个*图像的大小调整为这个大小(因此,使用'-geometry 220x'在这种情况下将保持原始大小)。这看起来是否正确? – Hendy 2017-06-28 04:57:59

23

Dave的解决方案没有为我工作,所以我找到了更好的答案here。试试这个:

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

也工作没有第二个 “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 

(改变“6.8.0-Q16 “当然,用你自己的ImageMagick版本)

+0

完美工作! – max 2013-04-18 19:49:16

+0

我在Windows上安装了ImageMagick,但是我没有看到montage.exe文件 – 2017-11-29 10:31:32

+0

请务必检查ImageMagick安装程序选项“安装遗留工具(例如convert)”。 (测试版本7.0.7) – user2704917 2018-01-17 00:45:41