也就是说,我有很多屏幕截图,并且我想将它们变成
通过谷歌搜索,我遇到了'composite'命令,但是我不知道是否可以使用,在这种情况下如何使用它来得到我想要的结果。
#1 楼
对于任意数量的名为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-inN.jpg
您可以使用
-append
(而不是+append
)进行垂直粘贴。< br或:
montage -mode concatenate -tile 1x in-*.jpg out.jpg
还将创建文件
out.jpg
,其中包含源图像的垂直串联。convert
对于单行或单列的简单串联,
append
工具的convert
选项就足够了。请注意,-append
垂直连接所有图像,创建一个具有n行的列,,而
+append
水平连接在一起,创建一个具有n个列的行。(请参见ImageMagick:命令行选项。)
montage
要更好地控制布局,我们需要
montage
工具。 montage -mode concatenate
将像append
选项一样将输入图像粘在一起,而-tile 1x
控制要应用的布局。tile
遵循格式列×行,但是可能缺少任何一侧,并且montage
会弄清楚如何满足约束。我们在这里使用
1x
(恰好是一列,具有任意行数)来获得与-append
相同的效果。如果没有-tile 1x
,它将像+append
一样加入图像,默认为-tile x1
(一行中的任何列数)。(请参阅ImageMagick示例:蒙太奇,图像数组。)
评论
谢谢。 append可以正常工作,但是我认为蒙太奇损坏了:如果未安装ghostscript字体,即使您不对图像进行注释,它也将退出紧急状态。字体应按需加载,而不是提前加载。
–布拉姆
2014年1月5日19:26
@布拉姆:我不知道,并强烈同意。您知道GraphicsMagick的行为是否相同吗?
– Peth
2014年1月6日4:00
@MikeRobinson convert -append`counter = 0;对于x in- *;如果[[$(($ counter%2))== 0]]来做;然后回显$ x; fi; counter = $((counter + 1));完成`out.jpg应该可以完成这项工作。
– gozzilli
2014年11月12日15:59
请注意,convert -tile 2x2等命令将按字母顺序读取文件。这意味着名为0-10的块将被读取为0,10,1,2,..,9。我花了将近2个小时来了解一些基本知识。
– phil294
17年7月23日在19:27
@Blauhirn:那是对文件名排序的转换,还是只是您的glob按此顺序返回文件?例如ls *将按该顺序返回这些值。
–naught101
18年5月8日在6:00
评论
您是否查看过imagemagick多层图像示例?stackoverflow.com/questions/12076293/…