Python 中的 colorsys 模块
此模块允许在以内(RGB(红绿蓝))和其他颜色空间中表示的颜色之间进行颜色值双向转换。它使用的另外三个颜色空间是 YIQ(亮度 (Y) 同相正交)、HLS(色相亮度饱和度)和 HSV(色相饱和度值)。除了 YIQ 颜色空间中的 I 和 Q 值以外,所有坐标都可以介于 0 到 1 之间。
下表显示了函数及其用途。
函数 | 用途 | 允许值 |
---|---|---|
rgb_to_yiq | 从 RGB 坐标到 YIQ 坐标 | 0 到 1 |
rgb_to_hls | 从 RGB 坐标到 HLS 坐标 | 0 到 1 |
rgb_to_hsv | 从 RGB 坐标到 HSV 坐标 | 0 到 1 |
yiq_to_rgb | 从 YIQ 坐标到 RGB 坐标 | -1 到 1 |
hls_to_rgb | 从 HLS 坐标到 RGB 坐标 | 0 到 1 |
hsv_to_rgb | 从 HSV 坐标到 RGB 坐标 | 0 到 1 |
示例
import colorsys as csys # "Electric Blue" r, g, b = 0.47, 0.91, 1.00 print("The RGB Values for Electric Blue: ", (r, g, b)) # y, i, q = csys.rgb_to_yiq(r, g, b) print("YIQ", (y, i, q), "becomes", csys.yiq_to_rgb(y, i, q)) h, s, v = csys.rgb_to_hsv(r, g, b) print("HSV", (h, s, v), "becomes", csys.hsv_to_rgb(h, s, v)) h, l, s = csys.rgb_to_hls(r, g, b) print("HLS", (h, l, s), "becomes", csys.hls_to_rgb(h, l, s))
输出
运行以上代码,会得到以下结果
The RGB Values for Electric Blue: (0.47, 0.91, 1.0) YIQ (0.7879, -0.292513, -0.06563100000000005) becomes (0.47, 0.9100000000000001, 1.0) HSV (0.5283018867924528, 0.53, 1.0) becomes (0.47, 0.9099999999999999, 1.0) HLS (0.5283018867924528, 0.735, 1.0) becomes (0.4700000000000001, 0.9099999999999998, 0.9999999999999999)
广告