Graphics 颜色混合-变暗模式

Graphics 颜色混合-变暗模式,graphics,colors,blending,Graphics,Colors,Blending,我试图模拟Adobe Photoshop的混合模式-变暗 我理解变暗的基本原理:变暗(a,b)=最小(a,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)。你知道其他值是如何计算的吗 顺便说一句,暗模式是可交换的

我试图模拟Adobe Photoshop的混合模式-变暗

我理解变暗的基本原理:变暗(a,b)=最小(a,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)。你知道其他值是如何计算的吗


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

实际上,它稍微复杂一些。这里还有其他类似的问题可以回答这个问题。最好使用的可能是恰当命名的:


所以我终于找到了答案

在变暗模式下,构图与正常模式下相同,但如果后通道变暗,则前后通道翻转

对于每个通道: 变暗(a,b)=a

在我的最上面的例子中,对于green和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

他们谈论的是“正常”混合模式,而不是变暗。我已经在寻找类似的问题了,但我找不到任何类似的问题。你可以将你选择的颜色用alpha混合,白色变亮,黑色变暗。alpha通道可以控制结果颜色的亮度。但是我需要输出的透明度,就像在Photoshop中一样。是什么让你认为这种方法不能提供这种效果?我已经实现了正常模式和溶解模式,我看到了。但我想我得到了一个线索。。。我认为变暗(a,b)是最小值(a,b)和正常值(a,b)的“平均值”,取决于透明度。。。
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