例如,我有4张图片,大小为 1000x800 。我想将所有这些图像合并为一个图像。我知道有一个
的命令convert +append image[1-4].jpg output.jpg
但我想通过重叠 250像素将第二张图像合并到第一张图片中。
即,在我的最终图像中,image1有750像素以及image2& 3和最后一个图像有1000像素。
通过使用上面的 convert 命令,我们将获得 4000x800 的图片大小,但在这里我希望它是((750 * 3)+ 1000 * 1) X800。即 3250x800 。
另外,我如何通过垂直附加来做到这一点?
答案 0 :(得分:2)
" + smush"运算符将表现为" +追加",但它需要一个参数。正数将附加由许多像素分隔的图像。负数将附加具有大量重叠的图像。你的示例命令看起来像这样......
convert image[1-4].jpg +smush -250 output.jpg
要垂直附加图像,请使用" -smush"运营商的形式。在任何一种情况下,操作员都将根据当前的" -gravity"来对齐图像。设置。
答案 1 :(得分:1)
您没有说明如何重叠它们。如果你不需要混合,那么在ImageMagick中,你可以使用smush而不是append。 Smush允许偏移(间隙)或重叠。前者具有正值,后者具有负值以重叠后续图像。 -smush垂直附加,+ smush水平附加。当为参数使用正值时,背景颜色控制间隙的间距。
所以试试
convert image[1-4].jpg +smush -256x0 output.jpg
或
convert image1.jpg image2.jpg image3.jpg image4.jpg +smush -256x0 output.jpg
或者如果那些是具有该语法的唯一图像,那么
convert image*.jpg +smush -256x0 output.jpg
答案 2 :(得分:0)
我刚刚在Imagemagick 6.9.9.33 Q16 Mac OSX中测试了以下内容。
注意我使用-smush测试了正值,以便查看间隙而不是重叠。那只是为了测试。如果你按照最后一个命令,它应该可以正负值,如果你想重叠而不是在图像之间放置间隙。
创建13张名为rose0.jpg的图片... rose12.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "0" test/rose0.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "1" test/rose1.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "2" test/rose2.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "3" test/rose3.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "4" test/rose4.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "5" test/rose5.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "6" test/rose6.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "7" test/rose7.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "8" test/rose8.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "9" test/rose9.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "10" test/rose10.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "11" test/rose11.jpg
convert rose: -fill white -gravity center -pointsize 18 -annotate +0+0 "12" test/rose12.jpg
然后嘘他们。这失败了,只追加0-2。 (我认为这种结构仅限于它看到的任何数字)
convert test/rose[0-12].jpg -smush 10 test/rose_smush.jpg
如果仅使用一位数字,则此方法有效。
convert test/rose[0-9].jpg -smush 10 test/rose_smush.jpg
执行此操作的正确方法是使用以下结构。
convert test/rose%d.jpg[0-12] -smush 10 test/rose_smush.jpg
请参阅http://www.imagemagick.org/script/command-line-processing.php
上的文件名参考部分