The :mod:`colortools` defines a :cls:`Color` object that can be used to represent and manipulate colors in various contexts. It was created with the :mod:`FGAme` game engine, but it can also be used in other contexts such as arts and web applications.
Colors can be initialized from the RGB/RGBA components, in which each component is in the 0-255 range.
>>> w1 = Color(255, 255, 255)
>>> w2 = Color(255, 255, 255, 255)
>>> w1 == w2
True
The constructor also accepts color names, hex strings or hex numbers.
>>> Color('white') == Color('#FFF') == Color(0xffffff) == Color(255, 255, 255)
True
All names in CSS3.0 are accepted (see the complete list here<http://www.w3.org/TR/css3-color/#svg-color>). It is worth noting that although the G in RGB stands for green, the color with a full green value is called lime, while "green" is #008000 rather than #00FF00.
Color objects are immutable and behave like a tuple of 4 values.
>>> list(Color('green'))
[0, 80, 0, 255]
It also exposes several different representations of a color using the appropriate attribute.
>>> blue = Color('blue')
>>> blue.rbg
(255, 0, 0)
>>> blue.rgbf
(1.0, 0.0, 0.0)
>>> blue.rgbu
16711680
Color objects also implement a few useful transformations
>>> blue.darken(0.1) # darken by 10%
Color(229, 0, 0)