根据亮度在Python中查找颜色
假设我们有一个亮度值,范围是从0到255,比如说,这个亮度值能不能用来计算出一个RGB颜色呢?
在这个情况下,0代表黑色,255代表白色,而其他的颜色则在这两者之间分布。
1 个回答
1
在Python中,有一个标准库模块叫做 colorsys
。你想要的是 HSL颜色坐标;在这里,你所说的“亮度”其实就是亮度值。这个模块使用的每个部分的值范围是0到1。[注意,虽然标准顺序是HSL,但在Python中是HLS。]
所以,如果你想要不同亮度下的饱和红色,可以这样做:
import colorsys
hue = 0.0 # 0 is red
saturation = 1.0 # fully saturated
for luminance in range(0, 10, 1):
r, g, b = colorsys.hls_to_rgb(hue, luminance / 10.0, saturation)
print('{:d}, {:d}, {:d}'.format(int(r * 255), int(g * 255), int(b * 255)))
这样就会得到:
0, 0, 0
51, 0, 0
102, 0, 0
153, 0, 0
204, 0, 0
255, 0, 0
255, 50, 50
255, 101, 101
255, 153, 153
254, 204, 204
255, 255, 255
同样,如果你想在整个色谱中保持一个亮度下的颜色,只需保持亮度和饱和度不变,然后让色相从0变化到1。