2010-09-08 64 views
4

如果我有一个底层颜色和一个alpha值(C & A)并且想要在屏幕上创建一个自定义C & A,那么确定必须将顶层添加为顶层的函数是什么底层的?,添加什么颜色和alpha以创建所需的颜色?

编辑:

我想复制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阿尔法:二百五十六分之五十一......但我只知道这是因为我写的问题,并在Photoshop验证它。

回答

2

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

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

αřÇř = [(1 - α小号)*α b * Ç b ] + [(1-α b)* α s * C s] + α b小号 * B(C b,C 小号

其中

C = color, α = alpha value 

并且下标

R =结果,B =背景下,S =源

此外,

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

在正常混合模式的情况:B(C b,C s)= C 小号

共混阿尔法由下式给出:

αř =联盟(α b,α小号

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

+0

thx该链接。我编辑了OP。我试图匹配Photoshop的“正常”模式(嗯..现在弄清楚是什么) – jedierikb 2010-09-08 18:00:40

+0

这将是正常混合模式(最常见的混合模式)。正常的混合模式不会混合,顶层上的100%不透明像素会完全遮挡下面图层上的像素。 50%的透明像素可让您看到下方像素的部分透明视图。这是默认模式。 – dirkgently 2010-09-08 18:30:18

+0

唉,维基百科上正常模式的一句话描述在处理阿尔法方面并不是太有帮助......抱歉密集。 – jedierikb 2010-09-08 21:06:44

0

I th墨迹说photoshop的“正常”模式实现了Porter Duff“over”合成。然后wikipedia页面很有用,并列出了公式,尤其是处理alpha的公式。

请注意,并非所有的解决方案都是可能的。即,所需层的α必须大于基层的α。

的解决方案可能是这样的:

  • 确定新层的阿尔法为(alpha_desired - alpha_base)/(1 - alpha_base)。请注意,(alpha_desired - alpha_base)必须是正数。
  • 确定新图层的颜色,可能在可用范围之外 - 那么操作是不可能的。