【问题标题】:Color blending - Darken mode颜色混合 - 变暗模式
【发布时间】:2012-11-18 23:14:13
【问题描述】:

我正在尝试模拟 Adob​​e Photoshop 的混合模式 - 变暗。

我了解 Darken 的基本原理:Darken(a,b) = min(a,b)。例如:

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)。你知道其他值是如何计算的吗?

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

【问题讨论】:

    标签: graphics colors blending


    【解决方案1】:

    所以我终于找到了。

    在变暗模式下,构图与普通模式相同,但如果后通道较暗,则前后通道会翻转。

    对于每个频道: 变暗(a, 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
    

    【讨论】:

      【解决方案2】:

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

      Algorithm for Additive Color Mixing for RGB Values

      【讨论】:

      • 他们在谈论“正常”混合模式,而不是变暗。我一直在寻找类似的问题,但找不到类似的问题。
      • 您可以将您选择的颜色与白色调亮和黑色调暗混合。 Alpha 通道可以控制您希望生成的颜色有多亮或多暗。
      • 但我的输出需要透明度,就像在 Photoshop 中一样。
      • 是什么让你认为这种方法不能提供这个?
      • 我已经实现了 Normal 和 Dissolve 模式,我明白了。但我想我得到了一个线索......我认为 Darken(a,b) 是 min(a,b) 和 Normal(a,b) 的一些“平均值”,具体取决于透明度......
      猜你喜欢
      • 2013-08-29
      • 2021-11-20
      • 2018-12-23
      • 2014-04-09
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多