根据亮度在Python中查找颜色

1 投票
1 回答
1427 浏览
提问于 2025-04-18 14:56

假设我们有一个亮度值,范围是从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。

撰写回答