Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Module colorsys trong Python


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)