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

Algorithm 给定颜色和alpha,什么颜色&;要添加alpha以创建所需的颜色?,algorithm,colors,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 注:答案是0-0-255阿尔

如果我有一个底层颜色和一个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
注:答案是0-0-255阿尔法:51/256。。。但我之所以知道这一点,是因为我写了这个问题,并在photoshop中验证了它。

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

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

αrCr=[(1- αs)*αb* Cb]+[(1-αb)* αs*Cs]+ αb*αs* B(Cb、Cs)

在哪里

下标呢

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

而且

B(Cb,Cs)=混合模式功能

在正常混合模式下:B(Cb,Cs)=Cs

混合alpha由下式给出:

αr=Union(αb,αs)

并集(b,s)=b+s-(b*s)

我认为photoshop的“正常”模式实现了波特·达夫的“过度”合成。然后,该页面很有用,并列出了公式,特别是用于处理alpha的公式

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

解决方案可以是这样的:

  • 确定新层的alpha为
    (alpha_所需-alpha_碱)/(1-alpha_碱)
    。请注意,
    (需要α-α基)
    必须为正
  • 确定新图层的颜色,这可能超出可用范围--则操作不可能

thx用于该链接。我编辑了这篇文章。我正在尝试匹配photoshop的“正常”模式(嗯……现在要弄清楚这是什么),这将是正常混合模式(最常见的混合模式)。正常混合模式不进行混合,顶层的100%不透明像素完全阻挡了下层的像素。50%透明像素使您可以看到下面像素的部分透明视图。这是默认模式。唉,维基百科上对正常模式的一句话描述在处理alpha方面没有太大帮助。。。抱歉,太密集了。你对阿尔法混合的哪一部分有困难?
  C = color, α = alpha value