2011-05-30 18:30:58 +0000 2011-05-30 18:30:58 +0000
172
172

使用ImageMagick合并多个图像

我想用ImageMagick将多张图片合并成一张图片。为了更好的解释,我希望结果类似于这样。

也就是说,我有很多张截图,我想把它们变成一张图片,并把原来的图片放在一起。

通过谷歌搜索,我发现了'合成'命令,但我不知道是否可以,以及在这种情况下如何使用它来获得我想要的结果。

答案 (1)

266
266
266
2011-05-30 19:37:55 +0000

对于任何数量的名为in-<something>.jpg的输入文件。

convert -append in-*.jpg out.jpg

为了让特定的文件被追加,或者跳过数字而不是得到完整的 “glob",你可以明确地提到输入文件,并在后面加上append命令

convert in-1.jpg in-5.jpg in-_N_.jpg +append out-in1-plus-in5-and-in_N_.jpg

你可以使用-append(而不是+append)进行垂直粘贴。

或者:

montage -mode concatenate -tile 1x in-*.jpg out.jpg

也会创建一个文件out.jpg,其中包含源图像的垂直连缀。

convert

对于单行或单列的简单连接,append工具的convert选项就足够了。请注意,-append垂直连接所有图像,创建一列n行,+append水平连接,创建一行n列。

(参见 ImageMagick: Command-line Options .)

montage

要想对布局进行更精细的控制,我们需要使用 montage 工具。montage -mode concatenate会像append选项一样将输入的图像粘合在一起,-tile 1x控制要应用的布局。

tile遵循的格式是columns×rows,但任何一边都可能缺失,montage会想办法满足约束条件。

我们在这里使用1x(正好是一列,行数不限)来获得和-append一样的效果。如果没有-tile 1x,就会像+append一样加入图像,默认为-tile x1(一行任意列数)。

(参见 ImageMagick 示例:蒙太奇,图像数组 。)