对于我正在制作的JavaScript程序,我需要在颜色(例如,#4A6CD4)上找到覆盖层(#7F7F7F)的alpha值,然后创建一个输出颜色(例如,#6380DA)。因此,它应该是这样的:查找给定的3种颜色的Alpha
从上到下:
# 7F7F7F(阿尔法未知)
# 4A6CD4
将输出#6380DA。我需要知道的是叠加层的alpha值以及如何找到它。有人可以帮帮我吗?
对于我正在制作的JavaScript程序,我需要在颜色(例如,#4A6CD4)上找到覆盖层(#7F7F7F)的alpha值,然后创建一个输出颜色(例如,#6380DA)。因此,它应该是这样的:查找给定的3种颜色的Alpha
从上到下:
# 7F7F7F(阿尔法未知)
# 4A6CD4
将输出#6380DA。我需要知道的是叠加层的alpha值以及如何找到它。有人可以帮帮我吗?
如果底部层的α是1,那么就可以很容易地计算这样的阿尔法值:
var top = 0x7F7F7F;
var bottom = 0x4A6CD4;
var actual = 0x6380DA;
var alpha = (actual - bottom)/(top-bottom);
console.log(alpha);
“正式的”混合式应该是
得到的颜色=阿尔法*覆盖色+(1 - α)*背景颜色
方程式具有用于每个通道(红,绿和蓝,以十六进制表示的颜色代码的两个数字表示各)
要计算就可以解决这个为阿尔法(或使用Excel和数值求解)
公式不与例子匹配值,你给,虽然 - 是实际值或一些随机的例子吗?
除覆盖层外,所有值均为实际值,它们可以是(#FFFFFF)或(#000000) –
当我计算它(变量'top'已被使用,所以我使用topLayer)时,我得到一个结果,但如果我将顶层设置为黑色,我会得到一个负alpha值。 –
如果alpha <0,只需将minus减号加到plus。 –