\section{\module{colorsys} ---
         Conversions between color systems}

\declaremodule{standard}{colorsys}
\modulesynopsis{Conversion functions between RGB and other color systems.}
\sectionauthor{David Ascher}{da@python.net}

The \module{colorsys} module defines bidirectional conversions of
color values between colors expressed in the RGB (Red Green Blue)
color space used in computer monitors and three other coordinate
systems: YIQ, HLS (Hue Lightness Saturation) and HSV (Hue Saturation
Value).  Coordinates in all of these color spaces are floating point
values.  In the YIQ space, the Y coordinate is between 0 and 1, but
the I and Q coordinates can be positive or negative.  In all other
spaces, the coordinates are all between 0 and 1.

More information about color spaces can be found at 
\url{http://www.inforamp.net/\%7epoynton/ColorFAQ.html}.

The \module{colorsys} module defines the following functions:

\begin{funcdesc}{rgb_to_yiq}{r, g, b}
Convert the color from RGB coordinates to YIQ coordinates.
\end{funcdesc}

\begin{funcdesc}{yiq_to_rgb}{y, i, q}
Convert the color from YIQ coordinates to RGB coordinates.
\end{funcdesc}

\begin{funcdesc}{rgb_to_hls}{r, g, b}
Convert the color from RGB coordinates to HLS coordinates.
\end{funcdesc}

\begin{funcdesc}{hls_to_rgb}{h, l, s}
Convert the color from HLS coordinates to RGB coordinates.
\end{funcdesc}

\begin{funcdesc}{rgb_to_hsv}{r, g, b}
Convert the color from RGB coordinates to HSV coordinates.
\end{funcdesc}

\begin{funcdesc}{hsv_to_rgb}{h, s, v}
Convert the color from HSV coordinates to RGB coordinates.
\end{funcdesc}

Example:

\begin{verbatim}
>>> import colorsys
>>> colorsys.rgb_to_hsv(.3, .4, .2)
(0.25, 0.5, 0.4)
>>> colorsys.hsv_to_rgb(0.25, 0.5, 0.4)
(0.3, 0.4, 0.2)
\end{verbatim}
