给定颜色和alpha,什么颜色和&添加alpha以创建所需的颜色?

时间:2010-09-08 17:47:33

标签: algorithm colors

如果我有底层颜色和alpha值(C& A)并想在屏幕上创建自定义C& A,那么确定哪些C& A必须作为图层添加的功能是什么底层的顶部?

编辑:

我想复制photoshop的“普通”模式,以便与设计师的平面设计相匹配。

例如:

BASE LAYER rgb: 255-0-0 alpha: 51/256

+

NEW LAYER rgb: ???  alpha: ???

=

DESIRED LAYER rgb: 114-0-141 alpha: 92/256

P.S。:答案是0-0-255 alpha:51/256 ...但我只知道这个,因为我写了问题并在photoshop中验证了它。

2 个答案:

答案 0 :(得分:2)

这取决于两层(底部和顶部)之间使用的Blend Mode。维基页面列出了您可能感兴趣的一些公式。

PDF参考手册也有一个很好的解释:

  

α r C r = [(1 -   α s )*α b *   C b ] + [(1 - α b )*   α s * C s ] +   α b s *   B(C b ,C s

其中

  C = color, α = alpha value 

和下标

  

r =结果,b =背景,s =来源

此外,

  

B(C b ,C s )=混合模式功能

在正常混合模式的情况下: B(C b ,C s )= C s < / p>

混合的alpha由下式给出:

  

α r =联盟(α b ,α s

     

联盟(b,s)= b + s - (b * s)

答案 1 :(得分:0)

我认为photoshop的“普通”模式实现了Porter Duff“over”合成。然后wikipedia页面很有用并列出公式,特别是用于处理alpha。

请注意,并非所有解决方案都可行。即,所需图层的alpha值必须大于基本图层的alpha值。

解决方案可能是这样的:

  • 将新图层的alpha确定为(alpha_desired - alpha_base) / (1 - alpha_base)。请注意,(alpha_desired - alpha_base)必须为正。
  • 确定新图层的颜色,可能超出可用范围 - 然后无法进行操作。