使用 ImageMagick 用蒙版图像合成图像

问题描述

假设我有一些图像 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 一起使用,请将“转换”更改为“魔术”。