A = max( 1 - R0, 1 - G0, 1 - B0 ) = 1 - min( R0, G0, B0 )
因此,我们想要的颜色是:
A = 1 - min( R0, G0, B0 )
R = 1 - (1 - R0) / A
G = 1 - (1 - G0) / A
B = 1 - (1 - B0) / A
附注:对于黑色背景,同样的公式会更简单:
A = max( R0, G0, B0 )
R = R0 / A
G = G0 / A
B = B0 / A
附注2:为了澄清,上述所有公式都是针对“非预乘RGBA颜色”的。对于预乘alpha,只需将上面计算出的R、G和B乘以A即可:
R = A · ( 1 − (1 − R0) / A ) = R0 − (1 − A)
G = A · ( 1 − (1 − G0) / A ) = G0 − (1 − A)
B = A · ( 1 − (1 − B0) / A ) = B0 − (1 − A)
如果是黑色背景,则简单地使用 R = R0,G = G0 和 B = B0。
以上是关于IT技术的内容,涉及到颜色值计算公式。