从2种颜色计算得到的RGB,其中一种是透明的
我在寻找一个公式来转换它们。从2种颜色计算得到的RGB,其中一种是透明的
我知道要转换的一般透明度是
阿尔法·新+(1 - α)*老
我:
Color A : RGB(85, 113, 135)
Color B : RGB(43, 169, 225)
颜色A有90%的不透明度,并铺设彩色B的顶部,导致
Color C : RGB(65, 119, 145)
我的问题是,它是怎样到达C颜色?如果我用另一种颜色替换B颜色,我该如何获得C颜色?
这里是另外一个例子,同样的基色:
Color A : RGB(85, 113, 135)
Color B : RGB(45, 67, 82)
--------
Color C : RGB(65, 109, 131)
那些与图像做工作的例子 - 我想现在计算剩余颜色C,所以我可以指定一个背景颜色。
更新,请参阅接受的答案。上述示例中的red
很奇怪 - 接受的答案具有所有颜色的正确公式,我在Photoshop中对其进行了测试。
看来您的公式恰好是您的示例中使用的公式,按每个组件计算并四舍五入。
R_C:=天花板(R_A *阿尔法)+天花板(R_B *(1 - α))
G_c := ceiling(G_a * alpha) + ceiling (G_b * (1 - alpha))
B_c := ceiling(B_a * alpha) + ceiling (B_b * (1 - alpha))
奇怪,虽然,R成分似乎没有遵循的规则。我倾向于想知道为什么。
'天花板(85 * 0.9)= 77'(R-a * alpha)高于65,我在做什么? – 2010-08-17 19:32:05
@Kerry:我不确定。我写了一个小程序来测试方程,并观察到在你的测试案例中,绿色和蓝色值符合公式,但R没有。 – kbrimington 2010-08-17 19:36:27
你的解决方案是正确的 - 我在Photoshop中检查它,它工作正常。它以某种方式与Firefox有关。 – 2010-08-17 20:59:30
错字在问题中? – 2010-08-17 19:37:49
你从哪里得到你的例子?什么程序创建它们?它是否使用任何颜色校正? – 2010-08-17 19:42:07
示例来自我正在处理的网页,photoshop创建了这些图像,但它们正在网上实施。 – 2010-08-17 20:01:50