3
\� � @ s\ d Z ddddddgZdZdZdZdd� Zdd� Zd
d� Zdd� Zdd� Z dd� Z
dd� ZdS )aJ Conversion functions between RGB and other color systems.
This modules provides two functions for each color system ABC:
rgb_to_abc(r, g, b) --> a, b, c
abc_to_rgb(a, b, c) --> r, g, b
All inputs and outputs are triples of floats in the range [0.0...1.0]
(with the exception of I and Q, which covers a slightly larger range).
Inputs outside the valid range may cause exceptions or invalid outputs.
Supported color systems:
RGB: Red, Green, Blue components
YIQ: Luminance, Chrominance (used by composite video signals)
HLS: Hue, Luminance, Saturation
HSV: Hue, Saturation, Value
�
rgb_to_yiq�
yiq_to_rgb�
rgb_to_hls�
hls_to_rgb�
rgb_to_hsv�
hsv_to_rgbg �?g @g @g @c C sR d| d| d| }d| | d|| }d| | d|| }|||fS )Ng333333�?g�z�G��?g)\��(�?g�G�z��?gH�z�G�?g���Q��?g=
ףp=�?� )�r�g�b�y�i�qr r � /usr/lib64/python3.6/colorsys.pyr ( s c C s� | d| d| }| d| d| }| d| d| }|dk rHd}|dk rTd}|dk r`d}|dkrld}|dkrxd}|dkr�d}|||fS ) Ng2r��L�?g����,��?g:�����?g�nєW�?g6����?gJ"�X�?g g �?r )r r r
r r r
r r r r . s c C s� t | ||�}t| ||�}|| d }||kr6d|dfS |dkrP|| || }n|| d| | }|| || }|| || }|| || } | |kr�| | }
n"||kr�d| | }
nd| | }
|
d d }
|
||fS )Ng @g g �?g @g @g �?)�max�min)r r r
�maxc�minc�l�s�rc�gc�bc�hr r r r K s$
c C sn |dkr|||fS |dkr(|d| }n|| || }d| | }t ||| t �t ||| �t ||| t �fS )Ng g �?g �?g @)�_v� ONE_THIRD)r r r �m2�m1r r r r b s
c C sT |d }|t k r$| || | d S |dk r0|S |tk rP| || t| d S | S )Ng �?g @g �?)� ONE_SIXTH� TWO_THIRD)r r Zhuer r r r l s r c C s� t | ||�}t| ||�}|}||kr.dd|fS || | }|| || }|| || }|| || } | |kr|| | }
n"||kr�d| | }
nd| | }
|
d d }
|
||fS )Ng g @g @g @g �?)r r )r r r
r r �vr r r r r r r r r | s
c C s� |dkr|||fS t | d �}| d | }|d| }|d|| }|d|d| }|d }|dkrt|||fS |dkr�|||fS |dkr�|||fS |dkr�|||fS |d kr�|||fS |d
kr�|||fS d S )Ng g @g �?� � � � � � � )�int)r r r r �f�pr
�tr r r r � s(
NgUUUUUU�?gUUUUUU�?gUUUUUU�?)�__doc__�__all__r r r r r r r r r r r r r r �<module> s