我有两个颜色,用RGBA表示(在我的具体示例中,一个集合是[带有alpha值0.85的白色]和[带有alpha值0.25的57、40、28)。 第二种颜色会覆盖第一种颜色(即白色带alpha值作为背景,第二种颜色用于绘制)。 如何确定组合后的RGBA颜色是什么? 我只需要这样做一次 - 所以任何工具都可以(例如,我很乐意在Photoshop中绘制一些东西并查看输出结果)。
我有几个集合要组合,但不算太多。 有什么指导吗?谢谢。
我有两个颜色,用RGBA表示(在我的具体示例中,一个集合是[带有alpha值0.85的白色]和[带有alpha值0.25的57、40、28)。 第二种颜色会覆盖第一种颜色(即白色带alpha值作为背景,第二种颜色用于绘制)。 如何确定组合后的RGBA颜色是什么? 我只需要这样做一次 - 所以任何工具都可以(例如,我很乐意在Photoshop中绘制一些东西并查看输出结果)。
我有几个集合要组合,但不算太多。 有什么指导吗?谢谢。
使用画家算法时,大多数颜色合成都是使用Porter-Duff的“覆盖”模式:
生成的Alpha值为:
αr = αa + αb (1 - αa)
最终颜色组件:
Cr = (Ca αa + Cb αb (1 - αa)) / αr
那么以你的例子为例:
alpha = 0.25 + 0.85 * (1 - 0.25) = 0.8875
red = (57 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875 = 199.2
green = (40 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875 = 194.4
blue = (28 * 0.25 + 255 * 0.85 * (1 - 0.25)) / 0.8875 = 191.1
a
和α
是同一个变量还是不同的变量? - Anderson Greenαa
,αb
和αr
是三个变量。它们分别代表第一个源(a),第二个源(b)和结果(r)的alpha分量。 - Nikolai RuheCr
、Ca
和Cb
分别代表什么呢? - Anderson Green