我目前正试图获得RGB格式的免费颜色。根据{{3}}的指导,我执行了以下步骤:
1-H
创建免费HSL,同时保持S
和L
。我的代码如下:
bg_color_hls = (random.random(), random.random(), random.random())
fg_color_hls = (1-bg_color_hls[0], bg_color_hls[1], bg_color_hls[2])
print bg_color_hls
print fg_color_hls
print colorsys.hls_to_rgb(*bg_color_hls)
print colorsys.hls_to_rgb(*fg_color_hls)
然而,这是打印以下内容:
(0.5536645842193463, 0.489454360526385, 0.47696160643815266)
(0.4463354157806537, 0.489454360526385, 0.47696160643815266)
(0.2560034224515616, 0.5725687282723873, 0.7229052986012084)
(0.2560034224515616, 0.7229052986012084, 0.5725687282723875)
注意R值是如何始终相同的,它只是切换G和B.
这不是互补色的工作方式。我的问题在哪里?
答案 0 :(得分:1)
这不是你如何产生一种免费的色调。
您需要添加0.5,然后将其恢复到[0,1]范围内。
fg_color_hls = ((bg_color_hls[0] + 0.5) % 1.0, bg_color_hls[1], bg_color_hls[2])