使用 imagemagick 将透明度从一张图片转移到另一张图片

使用 imagemagick 将透明度从一张图片转移到另一张图片

我正在尝试从一张图像中获取 alpha 通道并将其应用到另一张图像中。

在这个特殊情况下,我想“修复”粉色的角。我想使用黑色的 alpha 通道。这应该可以很好地平滑角。

源-1 α-1

源角 alpha 角

我尝试过类似的命令convert pink.png black.png -compose copy-opacity -composite out.png,但它似乎只呈现出与原来相同的透明度。

有人能解释一下如何做到这一点吗?

答案1

直接回答

为了使其pink.png具有与使用相同的 alpha 通道black.png

convert pink.png black.png -compose CopyOpacity -composite PNG32:fixed.png

解释

根本问题是 Imagemagick 没有选择支持半透明像素的 PNG 格式。这就是为什么当我首先更改颜色时,边缘变得参差不齐的原因。您可以使用各种选项来保持部分透明度:

convert (command) PNG32:out.png
convert (command) PNG64:out.png
convert (command) out.tif

参考 Imagemagick 的PNG 子格式的文档找出每个通道都有什么类型的 alpha 通道。

相关内容