基于刻度淡入十六进制颜色

时间:2010-11-29 13:21:27

标签: php math colors hex formula

你如何淡化十六进制颜色?基于0-100的等级。

假设我想要一个元素在获得100时为绿色,在0时为白色,中间有所有阴影。

更新: HEX> RGB> HSV - 这里有用的例程集合: http://php.amnuts.com/index.php?do=view&id=16&file=class.image.php

3 个答案:

答案 0 :(得分:1)

您应该使用HSV颜色坐标,并使色调(H)和值(V)固定,并将饱和度(S)从无(灰色,0)变为满(绿色,1)。在RGB和HSV之间转换很容易。您可以使用Wikipedia中的公式。

答案 1 :(得分:0)

嗯,因为屏幕颜色是“浅色”而不是“颜料”,所有颜色的缺失都是黑色,而不是白色。因此,使用CSS rgb颜色从黑色变为绿色更容易,而不是十六进制。

rgb(0,0,0) --> rgb(0,255,0)

要为白色做同样的事情,您需要从所有颜色开始,并在刻度上移除蓝色和红色以留下纯绿色。

rgb(255,255,255) - > rgb(150,255,150) - > RGB(0,255,0)

然后只需对数字进行数学乘以你的尺度(255/100 = 2.55)SO

如果我得分75。

75 * 2.55 = 191 (rounded)

所以在白色到绿色的情况下,我会将颜色设置为

element.class {color:rgb(191,255,191); }

答案 2 :(得分:0)

最简单的方法是在CSS中使用rgb()。因为它接受原始整数,所以你可以简单地将r和b值的数字从0(g为255)改为史诗绿色,改为255,即白色。