Note: pygame 1.8.1 includes a Color class with many colorspace conversion routines: http://www.pygame.org/docs/ref/color.html

# Python comes with some color conversion methods. import colorsys # A typical color value using a 0xFF representation (e.g. pygame) color = (255, 100, 100) # Normalization method, so the colors are in the range [0, 1] def normalize (color): return color[0] / 255.0, color[1] / 255.0, color[2] / 255.0 # Reformats a color tuple, that uses the range [0, 1] to a 0xFF # representation. def reformat (color): return int (round (color[0] * 255)), \ int (round (color[1] * 255)), \ int (round (color[2] * 255)) # Supported conversions. They require 3 arguments. hls = colorsys.rgb_to_hls (*normalize (color)) hsv = colorsys.rgb_to_hsv (*normalize (color)) yiq = colorsys.rgb_to_yiq (*normalize (color)) # Reformat a HLS/HSV/YIQ color to a 0xFF RGB representation. rgb1 = reformat (colorsys.hls_to_rgb (*hls)) rgb2 = reformat (colorsys.hsv_to_rgb (*hsv)) rgb3 = reformat (colorsys.yiq_to_rgb (*yiq))