## Internal Color Representation

Internally, R uses a 24 bit color model; with 8 bits describing the intensity of each of the primaries red, green and blue. These bytes are interpreted as values in the range 0-255, with 0 representing the lowest intensity and 255 the highest. The bytes are stored in the most significant bytes of a 32-bit integer as follows:

            color = (red<<8)|(blue<<16)|(green<<24);

The bytes can be extracted from a 32 bit integer as follows:

            red   = (color>> 8)&255;
            green = (color>>16)&255;
            blue  = (color>>24)&255;

Device drivers may choose to rescale these values to whatever scale is appropriate.

Since the lowest byte of color values is not used by the color representation it can be used for other purposes. Currently a non-zero byte is taken to indicate an index into a (user defined) table of colors. Such indices are restricted to the range 1-255.