如何使用Imagemagick将RGB图像和8位alpha图像组合成单个PNG文件?

Ale*_* K. 7 imagemagick

想象一下,我有rgb.jpg和alpha.png.如何将它们与Imagemagick结合到rgba.png中?

Ano*_*mie 20

由于您没有指定,我将假设从命令行运行一个足够新版本的ImageMagick.这是在Linux上使用ImageMagick 6.6.9-7(来自Debian)测试的.

如果alpha.png是要从中复制Alpha通道的图像,或者它是没有Alpha通道的灰度图像,则可以使用以下内容:

convert rgb.jpg alpha.png -compose copy-opacity -composite rgba.png
Run Code Online (Sandbox Code Playgroud)

否则,您将不得不进行更多处理alpha.png.例如,这会转换alpha.png为灰度并忽略alpha通道:

convert rgb.jpg ( alpha.png -colorspace gray -alpha off ) -compose copy-opacity -composite rgba.png
Run Code Online (Sandbox Code Playgroud)

请注意,您可能必须在后一个命令中转义括号,具体取决于您的命令行环境.

如有必要,您还可以在将灰度图像用作Alpha通道之前将其反转:

convert rgb.jpg ( alpha.png -colorspace gray -alpha off -negate ) -compose copy-opacity -composite rgba.png
Run Code Online (Sandbox Code Playgroud)