解释
我有一种不为人知的半透明颜色。
我有一个在黑色背景上合成的未知颜色的样本,另一个在白色背景上合成的样本。
如何找到未知颜色的rgba值?
例子
注:复合材料的rgb值使用Wikipedia article on alpha compositing中的公式计算。
复合黑色:
rgb(103.5, 32.5, 169.5)
白色合成:
rgb(167.25, 96, 233.25)
未知颜色的计算值为:
rgba(138, 43, 226, 0.75)
我读到的
Manually alpha blending an RGBA pixel with an RGB pixel
Calculate source RGBA value from overlay

最佳答案

这需要一些实验,但我想我已经弄明白了。
在黑白组合之间减去任何颜色分量值,都会得到与原始颜色的alpha值相反的值,例如:

A_original = 1 - ((R_white_composite - R_black_composite) / 255) // in %, 0.0 to 1.0

无论使用R、G还是B分量,它都应该产生相同的值现在已经有了原始的alpha,找到新的组件就像:
R_original = R_black_composite / A_original
G_original = G_black_composite / A_original
B_original = B_black_composite / A_original

关于algorithm - 给定在黑白背景上合成的两个样本,计算源RGBA,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24966427/

10-13 04:59