我正在尝试做我认为简单的操作,只是无法找出convert
的命令行选项。我有两张图片,想从另一张图片中减去。
减去 会导致
我知道它必须涉及-composite
一个-compose
选项的命令,但我无法弄清楚哪个。要么它与我想要的相反,要么创建一个较小的区域(当切出的部分是较小的图像时),或者只做其他事情。
注意:在第二个图像中,应该减去alpha通道,忽略颜色。完全不透明的像素将从结果中完全移除,透明的像素保持不变,部分的像素被部分移除。 第二张图片的大小可能与第一张图片的大小不同。最终必须应用几何偏移,此处的示例仅用于简化目的。
实现我想要的命令行是什么?
注意:我想要convert
而不是compose
的命令行,因为它实际上是较长命令行的最后一步。
答案 0 :(得分:1)
我从IM论坛得到了一些帮助。以下是我要求的。它将圆形的alpha通道复制到方形图像上。这给了我与我想要的相反的alpha,所以我否定了那个通道来获得理想的结果。
convert square.png circle_small.png -gravity center -compose CopyOpacity \
-composite -channel A -negate a.png
答案 1 :(得分:0)
我知道你说你想要转换命令行,但这可能有助于你找到如何到达那里......
convert -negate b.png invb.png
composite -compose Lighten a.png invb.png c.png
我将你最左边的图像命名为#34; a"和下一个" b"。我相信有一种更简单的方法 - 我们只需要一个聪明的人来告诉我们!
答案 2 :(得分:0)
这可以按照您的描述工作,您可以在命令链的末尾执行此操作:
convert -channel Alpha -compose subtract -composite circle.png square.png -write mpr:orig +delete \
-channel RGB -compose add -composite mpr:orig square.png output.png
我使用mpr来保存第一个操作的结果。显然,诀窍是首先减去相应的alpha通道,然后添加减法和正方形的RGB通道。