给定一个颜色和透明度,需要添加什么颜色和透明度才能创建所需的颜色?

4
如果我有一个底层颜色和一个透明度值 (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个回答

2
这将取决于两个图层(底部和顶部)之间使用的混合模式。维基页面列出了一些公式,可能会对您有所帮助。
PDF参考手册也有一个很好的解释:
αrCr = [(1 - αs) * αb * Cb] + [(1 - αb) * αs * Cs] + αb * αs * B(Cb, Cs)
其中:
  C = color, α = alpha value 
“and the subscripts” 的意思是“下标”。
“r = result, b = backdrop, s = source” 的意思是“r表示结果,b表示背景,s表示源”。
“B(Cb, Cs) = blend mode function”的意思是“B(Cb, Cs)表示混合模式函数”。
对于正常混合模式(Normal Blend Mode):“B(Cb, Cs) = Cs”。
混合后的 alpha 值为:
“αr = Union(αb, αs)”,其中“Union(b, s) = b + s - (b * s )”。

谢谢你提供的链接。我编辑了原帖。我正在尝试匹配 Photoshop 的“正常”模式(嗯...现在需要弄清楚那是什么)。 - jedierikb
这将是正常混合模式(最常见的混合模式)。正常混合模式不进行混合,顶部图层上100%不透明的像素完全遮挡了下面图层的像素。50%透明像素可以让您看到下面像素的部分透明视图。这是默认模式。 - dirkgently
唉,维基百科上关于正常模式的一句话描述对于处理alpha并不太有帮助...抱歉我理解能力差。 - jedierikb
你在 alpha 混合的哪个部分遇到了困难? - dirkgently

0

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

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

解决方案可能如下:

  • 确定新图层的alpha值为(alpha_desired - alpha_base) / (1 - alpha_base)。请注意,(alpha_desired - alpha_base)必须为正数。
  • 确定新图层的颜色,这可能超出了可用范围--那么操作就不可能完成。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接