mac*_*nir 2 graphics alpha imaging alphablending
如果我想显示一个统一的半透明图像,然后"淡出"此图像,逐渐将其替换为另一个相同的透明度,同时在过渡期间将组合透明度保持在恒定水平,如何确定透明度绘制图像?
通过反复试验 - 将各种alphas的透明图像相互叠加 - 我想出了下图,显示了一个轴上图像A的透明度和另一个轴上图像B的透明度.'isoalpha'线显示alpha的组合,沿着线一直产生相同的alpha.每条线用于不同的alpha级别,左上角完全透明.
你可以看到我正在寻找的公式不是alphaA + alphaB == alphaTarget的直线转换.
我正在寻找的数学公式是什么?

X轴 - 图像B的α(0-255 lr).Y轴 - 图像A的alpha(向下0-255).
透明度倍增.
transparency_new = transparency_a * transparency_b
Run Code Online (Sandbox Code Playgroud)
但是,因为不透明度(alpha)与透明度相反:
1 - opacity_new = (1 - opacity_a) * (1 - opacity_b)
Run Code Online (Sandbox Code Playgroud)
要么:
opacity_new = 1 - (1 - opacity_a) * (1 - opacity_b)
Run Code Online (Sandbox Code Playgroud)
如果使用从0到255而不是0到1.0的alpha运行,则适当缩放
alpha_new = 255 * (1 - (1 - alpha_a / 255) * (1 - alpha_b / 255))
Run Code Online (Sandbox Code Playgroud)
我使用上面的公式和Grapher.app复制了你的图形:
