如何链接两个 Imagemagick 命令

How to chain two Imagemagick Commands

我有两个依赖的 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


第二个命令将上面的输出和 "flattens it" 放到另一个图像上

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

我应该得到一个 svg 图像,在 marker.svg

的顶部有一个圆形图像

试试看这是 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


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

还有为什么页面只有几个像素?

更正:

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

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


根据需要调整页面偏移量

想通了。从展平切换到复合,只需要找到放置几何设置的正确位置。如果没有几何形状,圆形图像将放置在 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!

上或多或少地找到了解决方案