Module này cho phép chuyển đổi hai chiều các giá trị màu giữa các màu được biểu diễn trong RGB (Red Green Blue) và các không gian màu khác. Ba không gian màu khác mà nó sử dụng là YIQ (Luminance (Y) In-phase Quadrature), HLS (Hue Lightness Saturation) và HSV (Hue Saturation Value). Tất cả các tọa độ có thể nằm giữa 0 và 1, ngoại trừ giá trị I và Q trong không gian màu YIQ.
Bảng dưới đây cho thấy các hàm và mục đích của chúng.
| Hàm | Mục đích | Giá trị cho phép |
|---|---|---|
| rgb_to_yiq | từ tọa độ RGB sang tọa độ YIQ | 0 đến 1 |
| rgb_to_hls | từ tọa độ RGB sang tọa độ HLS | 0 đến 1 |
| rgb_to_hsv | từ tọa độ RGB sang tọa độ HSV | 0 đến 1 |
| yiq_to_rgb | từ tọa độ YIQ sang tọa độ RGB | -1 đến 1 |
| hls_to_rgb | từ tọa độ HLS sang tọa độ RGB | 0 đến 1 |
| hsv_to_rgb | từ tọa độ HSV sang tọa độ RGB | 0 đến 1 |
Ví dụ
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))
Kết quả
Chạy mã trên cho kết quả sau:
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)