根据python中的亮度查找颜色

时间:2014-07-27 08:49:28

标签: python colors rgb

给定一定量的亮度(例如从0到255)是否有任何算法可以从中获得RGB颜色?

这适用于0为黑色,255为白色以及所有其他颜色放置在它们之间的情况。

1 个答案:

答案 0 :(得分:0)

在Python中有标准库模块colorsys。你想要的是HSL colour coordinates;那么你的亮度"是亮度。每个组件的模块使用的值为0..1。 [注意,虽然标准顺序是HSL,但在python中它是H LS 。 ]

因此,为了获得不同亮度的完全饱和的红色,您可以

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.