给定一定量的亮度(例如从0到255)是否有任何算法可以从中获得RGB颜色?
这适用于0为黑色,255为白色以及所有其他颜色放置在它们之间的情况。
答案 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.