Imagemagick合成覆盖透明度

6

我正在使用ImageMagick将一幅图像与另一幅图像进行叠加,并希望使用混合选项。我希望将叠加的图像不透明度调整为约60%。我只想调整前景图像,而不是合并组。我目前有以下代码:

exec("convert $img_in test_images/test_opacity.jpg -compose screen -composite $img_out");

我想要类似于这样的东西:
exec("convert $img_in (test_images/test_opacity.jpg -opacity 0.6) -compose screen -composite $img_out");

非常感谢您的帮助。

这里涉及到IT技术相关内容。
1个回答

6
使用 +level-level-color 选项来调整白色/黑色点。这通常会使遮罩产生“闪光”或“燃烧”的效果,而合成的 Screen 会予以尊重。
convert source.jpg \
        \( mask.jpg -normalize +level 0,60% \) \
        -compose screen -composite destination.jpg

您可以使用-alpha-channel-evaluate定义alpha通道来调整掩膜的不透明度。有关详细信息,请参见此问题。但这不能与compose Screen一起使用,因为它期望在黑色和白色之间进行范围选择。
convert source.jpg \
        \( mask.jpg -alpha set -channel A -evaluate set 60% \) \
        -compose screen -composite \
        destination.jpg

对我来说,第二条命令在没有使用“-compose screen”参数的情况下效果更好。它不会在100%时变为不透明,而是会做一些奇怪的乘法操作。 - user1666456

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接