问题描述
假设我有一些图像 a.jpg
和一些其他图像 b.jpg
。
所需的输出 out.jpg
应该通过将 b.jpg
中非黑色的所有像素复制到a.jpg
所有其他像素上来获得将保持不变。
我尝试使用 composite
但没有任何成功。
解决方法
编辑添加:这里的解决方案可能非常简单和通用,但今后,请记住始终包含您的 ImageMagick 版本以及您正在使用的操作系统或平台。有一些语法差异可以使这一点变得重要。
在最简单的情况下,使用 ImageMagick v6,您应该能够做这样的事情...
convert b.jpg -background none -transparent black a.jpg +swap -composite out.jpg
读取 B 图像,将所有纯黑色像素更改为透明,然后读取 A 图像,交换图像以使它们按正确顺序排列,然后将修改后的 B 图像合成到 A 图像上并写入输出。
您可以在“-transparent”操作之前添加诸如“-fuzz 5%”之类的模糊值,以扩大选择范围以包括接近黑色的像素。
要与 IMv7 一起使用,请将“转换”更改为“魔术”。