是否可以生成颜色?

时间:2011-05-22 12:06:59

标签: javascript colors

我知道有关于此的帖子,但我仍然不太明白..我想要一个自动生成颜色代码({color:Lighter})的脚本,这将是一个较轻的版本{color:Links}。我希望脚本使用{color:Links}的颜色代码使用十六进制代码(它必须是十六进制)并使其轻10倍。非常接近白色,但是足够白,这样你仍然可以看到颜色。有人可以请我提供代码吗?

2 个答案:

答案 0 :(得分:2)

您正在做的是在两种颜色之间进行混合,因此您可以像这样计算颜色分量:

c = c0 +(c1-c0)* x

其中c0c1是两种颜色,x是它们之间的平衡。您可以使用接近1的值来获得接近第二个的颜色。我不知道你的意思是“轻了十倍”,但是你可以尝试0.9这样的值,它可以给你一个混合,其中白色占结果的90%。

由于白色为rgb(255,255,255),因此您将RGB值计算为:

r = r0 + (255-r0) * 0.9
g = g0 + (255-g0) * 0.9
b = b0 + (255-b0) * 0.9

然后你只需在CSS中使用它们'rgb('+r+','+g+','+b+')'

如果你需要它作为十六进制代码,你可以这样格式化:

'#'+(256+r).toString(16).substr(1)+(256+g).toString(16).substr(1)+(b+256).toString(16).substr(1)

答案 1 :(得分:0)

以下是2个具有解决方案的StackOverflow问题。

Programmatically Lighten a Color

Programmatically Lighten or Darken a hex color (or rgb, and blend colors)

除了#FFFFFF(十六进制)格式之外,您可能还需要考虑rgb(0,0,0)格式。