模拟颜色透明度

12

我有RGB颜色值和alpha值。假设我有白色背景并应用了alpha值,那么我如何获得新的RGB值?

1个回答

15

需要应用于每个颜色通道的公式如下:

cr = cf * af + cb * ab * (1 - af)

cr是像素的结果颜色,cf是前景色,cb是背景色,af是前景透明度,ab是背景透明度。

请注意,通常颜色值已经通过乘以透明度来预先处理了,此时公式简化为:

cr = cf + cb * (1 - af)

参见alpha composing


假设我有一个带有alpha 0.5的红色(ff0000),并且背景是白色。尝试获取结果颜色:ff0000 * 0.5 + ffffff * 0.5 = ff7fff,但这不是我期望的... http://www.colorhexa.com/ff7fff 我做错了什么? - Timofei Davydik
2
将公式分别应用于每个颜色(红色、绿色、蓝色)。 - Aaron Digulla
新颜色的 alpha 通道怎么样? - Sebastian Barth

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