解释
我有一种不为人知的半透明颜色。
我有一个在黑色背景上合成的未知颜色的样本,另一个在白色背景上合成的样本。
如何找到未知颜色的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/