如何链接两个Imagemagick命令

时间:2019-07-08 10:11:48

标签: imagemagick imagemagick-convert

我有两个从属的imagemagick命令,它们各自可以很好地工作,但是尝试了所有可以想象的调用后,我无法将它们组合为一个命令。如果有人能指出我正确的方向,我将非常感激。

我尝试了多种方法,以在线资源为指导将两者结合起来,但是按照惯例,我找不到适合我需要的确切示例。我正在IM6 *上运行(我的服务器也在IM6 *上)

第一个命令获取图像的中心裁剪缩略图,然后对其进行圆形图像。

convert -define jpeg:size=200x200 face.png \
-thumbnail 31x31^ -gravity center -extent 31x31 \
\( +clone -threshold -1 -negate -fill white -draw 'circle 15,12 12,0' \) \
-alpha off -compose copy_opacity -composite cut_to_fit_circ.png


第二个命令获取上面的输出并将其“拉平”到另一张图像上

convert marker.svg -page -1+2 cut_to_fit_circ.png \
-flatten facemarker.jpg

我应该最终得到一个svg图像,并将圆形图像放在marker.svg上

2 个答案:

答案 0 :(得分:0)

尝试使用ImageMagick 6。

convert marker.svg -page -1+2 \
\( -define jpeg:size=200x200 face.png \
-thumbnail 31x31^ -gravity center -extent 31x31 \
\( +clone -threshold -1 -negate -fill white -draw 'circle 15,12 12,0' \) \
-alpha off -compose copy_opacity -composite \) \
-flatten facemarker.jpg


如果那不起作用,则将链接发布到您的face.png和marker.svg,这样我就可以看到这些文件并使用它们进行测试。

还有-page为什么只有几个像素?

更正:

问题在于-compose copy_opacity流到了-flatten。因此,您必须在展平前重置为-compose。更正的命令将是。

convert -background none marker.svg \
\( -page +0+0 -define jpeg:size=200x200 face.png \
-thumbnail 31x31^ -gravity center -extent 31x31 \
\( +clone -threshold -1 -negate -fill white -draw 'circle 15,12 12,0' \) \
-alpha off -compose copy_opacity -composite \) \
-compose over -flatten facemarker.png


enter image description here

根据需要调整-page偏移量

答案 1 :(得分:0)

弄清楚了。从展平转换为合成,只需找到合适的位置放置几何设置。没有几何图形,圆形图像将放置在marker.png(svg)的中心,因此我必须应用其他设置才能使其正确定位:

convert marker.png \( -define jpeg:size=200x200 face.png \
 -thumbnail 31x31^ -gravity center -extent 31x31 \( +clone \
 -threshold -1 -negate -fill white -draw 'circle 15,12 12,0' \) \
 -alpha off -compose copy_opacity -composite \) -geometry +0-7 \
 -compose over -composite facemarker.png

或多或少地在push pins on a map forum question上找到了解决方案!