颜色混合 - 变暗模式

时间:2012-11-18 23:14:13

标签: graphics colors blending

我正在尝试模拟Adobe Photoshop的混合模式 - Darken。

我理解基本的Darken原理:变暗(a,b)= min(a,b)。 E.g:

Darken( (.2, .3, .8), (.5, .1, .4) ) = (.2, .1, .4)   // (r, g, b)

但我有透明度。在Photoshop中,Darken以这种方式工作:

Darken( (0, 1, 0, .5), (0, 0, 0, .5) ) = (0, .3, 0, .75)   // (r, g, b, a)

黑色变绿绿色。我看到,输出alpha是以经典方式计算的:ao = aa + ab *(1-aa)。你知道其他值是如何计算的吗?

顺便说一句。变暗模式是可交换的。

2 个答案:

答案 0 :(得分:1)

所以最后我发现了它。

在Darken模式下,合成与普通模式相同,但如果后声道较暗,则会翻转前后声道。

对于每个频道: 变暗(a,b)= a< b?规范(a,b):规范(b,a);

所以在我的顶级示例中,对于绿色和alpha:

Darken( (1, .5), (0, .5) ) =  Norm( (0, .5), (1, .5) ) 
alpha = (.5 + .5*(1-.5)) = .75
green = (0*.5 + 1*.5*(1-.5)) / .75 = (0 + .25) / .75 = 0.333333

答案 1 :(得分:0)

嗯,实际上,它涉及的更多一些。这里有其他类似的问题可以解答这个问题。最好用的可能是恰当的名字:

Algorithm for Additive Color Mixing for RGB Values