我知道这可能是重复的问题。Ruby,生成随机的十六进制颜色
我的问题略有不同。我需要知道,如何仅生成随机的六角浅色,而不是深色。
在这个线程中颜色亮度用以下公式描述
(0.2126*r) + (0.7152*g) + (0.0722*b)
亮度的相同公式是维基百科中给出(它取自本出版物)。它反映了人类的感知,其中绿色最“密集”,蓝色最“密集”。
因此,您可以选择 r、g、b,直到亮度值高于light and dark(255 比 0)。例如:
lum, ary = 0, []
while lum < 128
ary = (1..3).collect {rand(256)}
lum = ary[0]*0.2126 + ary[1]*0.7152 + ary[2]*0.0722
end
另一篇文章亮度,是r、g、b的算术平均值。请注意,亮度更加主观,因为给定的目标亮度可以在不同的环境中引发不同的亮度感知(特别是周围的颜色会影响您的感知)。
总而言之,这取决于您认为哪种颜色是“浅色”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)