我有一些具有透明背景的动画GIF,例如:
https://i.imgur.com/5yRvEDc.gif
我还有一个掩码PNG文件,其中一些像素是透明的,我想将其应用于GIF,例如
https://i.imgur.com/8Ly6Exg.png
我希望掩码上的所有透明像素在GIF上都是透明的(对于每一帧)--就像下面的图像一样,但是动画化并保持原来的GIF透明像素。
https://i.imgur.com/08kIjse.png
如何用ImageMagick来实现它?
发布于 2021-04-07 16:22:42
下面是在ImageMagick 6中这样做的一种方法。首先,用动画的alpha通道来增加掩码。然后将新的alpha通道与动画一起放回。
我注意到你的面具,在PNG的alpha通道中有一个圆圈,底层的图像完全是黑色的。所以你的面具图像的重要部分是它的阿尔法通道。
动画:

掩码:

convert lips.gif -coalesce -alpha extract null: \( lips_mask.png -alpha extract \) -compose multiply -layers composite alpha.gif
convert lips.gif null: alpha.gif -alpha off -compose copy_opacity -layers composite lips_masked.gif

如果使用ImageMagick 7,则将convert更改为magick。
https://stackoverflow.com/questions/66989585
复制相似问题