我有两种颜色定义为RGBA(在我的具体示例中,其中一个是[白色,带有α0.55]和[57,40,28带有α0.25]。第二个颜色被绘制在第一个上(即带有alpha的白色是背景,第二种颜色用于绘图)。我怎样才能弄清楚组合的RGBA颜色是什么?我需要一次性完成 - 所以任何工具都很好(例如我很高兴在Photoshop中画出一些东西,看看会发生什么。
我有几套要结合,但不是太多。有什么指针吗?感谢。
答案 0 :(得分:18)
使用Painter's algorithm时,大多数颜色合成都是使用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
请参阅有关alpha合成的wikipedia article。