Graphics 什么';两幅叠加透明图像的组合透明度公式是什么?

Graphics 什么';两幅叠加透明图像的组合透明度公式是什么?,graphics,alpha,alphablending,imaging,Graphics,Alpha,Alphablending,Imaging,如果我想显示一个均匀的半透明图像,然后“淡出”该图像,逐渐替换为另一个相同透明度的图像,同时在过渡期间将组合透明度保持在恒定水平,我如何确定绘制图像的透明度 通过反复试验——在每个字母的顶部绘制各种透明图像——我得出了下图,显示了图像A在一个轴上的透明度和图像B在另一个轴上的透明度。“isoalpha”线显示沿该线产生相同alpha的alpha组合。每一行代表不同级别的alpha,左上角完全透明 您可以看到,我要寻找的公式不是alphaA+alphaB==alphaTarget的直线过渡 我要找

如果我想显示一个均匀的半透明图像,然后“淡出”该图像,逐渐替换为另一个相同透明度的图像,同时在过渡期间将组合透明度保持在恒定水平,我如何确定绘制图像的透明度

通过反复试验——在每个字母的顶部绘制各种透明图像——我得出了下图,显示了图像A在一个轴上的透明度和图像B在另一个轴上的透明度。“isoalpha”线显示沿该线产生相同alpha的alpha组合。每一行代表不同级别的alpha,左上角完全透明

您可以看到,我要寻找的公式不是alphaA+alphaB==alphaTarget的直线过渡

我要找的数学公式是什么


X轴-图像B的alpha(0-255 l-r)。Y轴-图像A的alpha(向下0-255)。

透明度倍增

transparency_new = transparency_a * transparency_b
但是,由于不透明度(alpha)与透明度相反:

1 - opacity_new = (1 - opacity_a) * (1 - opacity_b)
或:

如果使用从0到255而不是从0到1.0的alpha运行,请根据需要进行缩放

alpha_new = 255 * (1 - (1 - alpha_a / 255) * (1 - alpha_b / 255))
我使用上述公式和Grapher.app复制了您的图形:

alpha_new = 255 * (1 - (1 - alpha_a / 255) * (1 - alpha_b / 255))