我想使用 ImageMagick 将多幅图像合并为一幅图像。为了更好地解释,我希望结果看起来类似于此:
也就是说,我有许多截图,我想把它们变成一张图像,并将原始图像相互叠加。
通过谷歌搜索,我遇到了“复合”命令,但我不知道是否以及在这种情况下如何使用它来获得我想要的结果。
答案1
对于任意数量的名为的输入文件:in-<something>.jpg
convert -append in-*.jpg out.jpg
为了附加特定文件,或跳过数字而不是获取完整的“glob”,您可以明确提及输入文件并append
在其后放置命令
转换 in-1.jpg in-5.jpg in-否.jpg +附加出-入1-加-入5-和-入否.jpg
您可以使用-append
(而不是+append
)进行垂直粘贴。
或者:
montage -mode concatenate -tile 1x in-*.jpg out.jpg
还将创建一个out.jpg
包含源图像垂直连接的文件。
convert
对于单行或单列的简单连接,append
该工具的选项convert
就足够了。请注意,-append
垂直连接所有图像,创建一列n行,并+append
水平连接,创建一行n列。
montage
为了更好地控制布局,我们需要该montage
工具。montage -mode concatenate
将像选项一样将输入图像粘合在一起append
并-tile 1x
控制要应用的布局。
tile
遵循格式列×行,但任何一方都可能缺失并montage
会想办法满足约束。
我们1x
在这里使用(恰好一列,任意数量的行)来获得与 相同的效果-append
。如果没有-tile 1x
,它会像 一样合并图像+append
,默认为-tile x1
(一行上任意数量的列)。
答案2
-resize
当图像的宽度/高度不同时使用
您可以使用选项固定所有图像的高度-resize
,例如将两个水平连接的图像的高度固定为 500 像素:
convert +append image_1.png image_2.png -resize x500 new_image_conbined.png
或者对于垂直连接,您可能希望设置固定宽度:
convert -append image_1.png image_2.png -resize 500x new_image_conbined.png
例子:
图像1.png 1067x600
图像2.png 1920x1080
新图像合并.png 889x500
如何与 GIMP 交互
如果您需要首先以交互方式裁剪/调整图像大小(通常情况下是这样),那么 GIMP 就是完美的工具,下面是详细的分步说明:https://graphicdesign.stackexchange.com/questions/83446/gimp-how-to-combine-two-images-side-by-side/145543#145543
- https://stackoverflow.com/questions/20737061/merge-images-side-by-sidehorizontally
- https://askubuntu.com/questions/226054/how-do-i-join-two-images-together
SVG
ImageMagick 6.9.11-60 不处理它们,因此请参阅:
- https://stackoverflow.com/questions/9612434/how-to-concatenate-svg-files-lengthwise-from-linux-command-line
- https://graphicdesign.stackexchange.com/questions/137096/is-there-a-way-to-stack-two-svgs-on-top-of-each-other
- https://graphicdesign.stackexchange.com/questions/90844/joining-together-multiple-svg-images