如何链接两个Imagemagick命令

如何链接两个Imagemagick命令,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我有两个独立的imagemagick命令,它们自己可以很好地工作,但是在尝试了所有可以想象的调用之后,我无法将它们组合在一起工作。如果有人能给我指出正确的方向,我将不胜感激 我曾尝试过多种方法,以在线资源为指导,将两者结合起来,但像往常一样,我找不到一个确切的例子来满足我的需要。我在IM6*上运行(我的服务器也在IM6*上) 第一个命令获取图像的中心裁剪缩略图,然后生成一个圆形图像 convert -define jpeg:size=200x200 face.png \ -thumbnail 3

我有两个独立的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图像,在标记的顶部有一个圆形图像。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

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

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

更正:

问题是-compose copy_不透明度流到了-flant。因此,在展平之前,您必须重置为“合成”。正确的命令是

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


根据需要调整-页面偏移量

试试这是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,这样我就可以看到这些文件并使用它们进行测试

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

更正:

问题是-compose copy_不透明度流到了-flant。因此,在展平之前,您必须重置为“合成”。正确的命令是

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


找到了解决方案,或多或少,就在网上

找到了答案。从“展平”改为“合成”,只需找到放置几何体设置的正确位置。在没有几何图形的情况下,圆形图像被放置在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



找到了解决方案,或多或少,就在网上

这是我尝试过的一个,它只显示了一个大小为marker.svg的白色矩形:(这里是指向两个图像文件的链接:(face.png)(marker.svg)。第二个脚本(带-page)这是我从IM文档中复制和修改的一个-在地图上放置图钉。请参见我在上面的回答中的更正。问题是-compose copy\u不透明流到-flatten。因此,在展平之前,您必须重置为-compose over几乎是辉煌的!!当我运行命令时,圆形图像刚好向右移动,并对齐to顶部。我可以看到我们丢失了“-page-1+2”它将圆形图像正确地放置在标记上。我如何做到这一点?在-define…之前将-page-1+2放在第一个括号内,然后根据需要进行调整。抱歉,我在测试时忘记将其放回。我已修改了我的更正。见上文。太棒了!!非常感谢您的帮助,弗雷德。这就是其中之一我试过了,它只显示一个白色矩形,大小与marker.svg相当:(这里是指向两个图像文件的链接:(face.png)(marker.svg)。第二个脚本(带-page)这是我从IM文档中复制和修改的一个-在地图上放置图钉。请参见我在上面的回答中的更正。问题是-compose copy\u不透明流到-flatten。因此,在展平之前,您必须重置为-compose over几乎是辉煌的!!当我运行命令时,圆形图像刚好向右移动,并对齐to顶部。我可以看到我们丢失了“-page-1+2”它将圆形图像正确地放置在标记上。我如何做到这一点?在-define…之前将-page-1+2放在第一个括号内,然后根据需要进行调整。抱歉,我在测试时忘记将其放回。我已修改了我的更正。见上文。太棒了!!非常感谢您的帮助,Fred。-page工作正常对我来说,如果你像我上面提到的那样把它放在第一个括号内。同样为了保持透明度,在阅读svg文件之前先放-background none。不知道为什么你从输入svg改为输入png?我正在为AppInventor开发一个可能的解决方案(我是论坛上的“助手”)-默认情况下,地图标记为svg,但其他图像组件不会显示svg,这就是我一直在切换的原因。-论坛上对您的解决方案表示感谢:)仅供参考。Imagemagick可以使用3个svg渲染器中的一个,以提高质量/可靠性:1)Imagemagick的内部MSVG/XML渲染,2)RSVG代表和3)Inkscape。为获得最佳质量/可靠性,请安装Inkscape,Imagemagick将使用它而不是其他2个。AppInventor可以使用Imagemagick吗?在我在谷歌上搜索AppInventor之前,我对它一无所知。只是好奇。如果你愿意,可以给我发脱机电子邮件。我的电子邮件地址在我的Imagemagick脚本网站的个人资料中。-如我上面提到的,如果你把它放在第一个括号内,这个页面对我有效。另外,为了保持透明度,请在读取svg文件之前放置-background none。不确定为什么将输入从svg更改为png?我正在为AppInventor开发一个可能的解决方案(我是论坛上的“助手”)-地图标记默认为svg,但其他图像组件不会显示svg,这就是为什么我一直在切换的原因。-您的解决方案已在论坛上发布:)仅供参考。为了提高质量/可靠性,Imagemagick可以使用3个SVG渲染器之一:1)Imagemagick的内部MSVG/XML渲染器、2)RSVG委托和3)Inkscape。为获得最佳质量/可靠性,请安装Inkscape,Imagemagick将使用它而不是其他2个。AppInventor可以使用Imagemagick吗?我对AppInv一无所知