python – HSV到RGB颜色转换

有没有办法在python中使用pygame模块将HSV颜色参数转换为RGB类型颜色参数?我尝试了以下代码,但它返回荒谬的值.

import colorsys
test_color = colorsys.hsv_to_rgb(359, 100, 100)
print(test_color)

这段代码返回以下废话

(100, -9900.0, -9900.0)

这显然不是RGB.我究竟做错了什么?

解决方法:

该函数需要小数表示s(饱和度)和v(值),而不是百分比.除以100.

>>> import colorsys

# Using percent, incorrect
>>> test_color = colorsys.hsv_to_rgb(359,100,100)
>>> test_color
(100, -9900.0, -9900.0)

# Using decimal, correct
>>> test_color = colorsys.hsv_to_rgb(1,1,1)
>>> test_color
(1, 0.0, 0.0)

如果你想要非规范化的RGB元组,这里是一个包装colorsys函数的函数.

def hsv2rgb(h,s,v):
    return tuple(round(i * 255) for i in colorsys.hsv_to_rgb(h,s,v))

示例功能

>>> hsv2rgb(0.5,0.5,0.5)
(64, 128, 128)
上一篇:eas之style接口


下一篇:c#-不能将空值分配给类型为System.Boolean的成员,这是非空值类型