The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Convert::Color - color space conversions and named lookups

SYNOPSIS

 use Convert::Color;

 my $color = Convert::Color->new( 'hsv:76,0.43,0.89' );

 my ( $red, $green, $blue ) = $color->rgb;

 # GTK uses 16-bit values
 my $gtk_col = Gtk2::Gdk::Color->new( $color->rgb16 );

 # HTML uses #rrggbb in hex
 my $html = '<td bgcolor="#' . $color->rgb8_hex . '">';

DESCRIPTION

This module provides conversions between commonly used ways to express colors. It provides conversions between color spaces such as RGB and HSV, and it provides ways to look up colors by a name.

This class provides a base for subclasses which represent particular color values in particular spaces. The base class provides methods to represent the color in a few convenient forms, though subclasses may provide more specific details for the space in question.

For more detail, read the documentation on these classes; namely:

The following classes are subclasses of one of the above, which provide a way to access predefined colors by names:

CONSTRUCTOR

$color = Convert::Color->new( STRING )

Return a new value to represent the color specified by the string. This string should be prefixed by the name of the color space to which it applies. For example

 rgb:RED,GREEN,BLUE
 rgb8:RRGGBB
 rgb16:RRRRGGGGBBBB
 hsv:HUE,SAT,VAL
 hsl:HUE,SAT,LUM

 vga:NAME
 vga:INDEX

 x11:NAME

For more detail, see the constructor of the color space subclass in question.

METHODS

( $red, $green, $blue ) = $color->rgb

Returns the individual red, green and blue color components of the color value. For RGB values, this is done directly. For values in other spaces, this is done by first converting them to an RGB value using their to_rgb() method.

( $red, $green, $blue ) = $color->rgb8

Returns the individual red, green and blue color components of the color value in RGB8 space. For RGB8 values, this is done directly. For values in other spaces, this is done by first converting them to an RGB value using their to_rgb() method, then converting that to RGB8.

( $red, $green, $blue ) = $color->rgb16

Returns the individual red, green and blue color components of the color value in RGB16 space. For RGB16 values, this is done directly. For values in other spaces, this is done by first converting them to an RGB value using their to_rgb() method, then converting that to RGB16.

$str = $color->rgb8_hex

Returns a string representation of the color components in the RGB8 space, in a convenient RRGGBB hex string, likely to be useful HTML, or other similar places.

$str = $color->rgb16_hex

Returns a string representation of the color components in the RGB16 space, in a convenient RRRRGGGGBBBB hex string.

COMMON METHODS OF SUBCLASSES

Most subclasses should support the following methods and behaviours. Note that this list is just a guide; the documentation for the specific class in question. As well as the following, it is likely the subclass will provide accessors to directly obtain the components of its representation in the specific space.

$color->as_rgb

Return a new value representing the color in RGB space

$color->as_rgb8

Return a new value representing the color in RGB8 space

$color->as_rgb16

Return a new value representing the color in RGB16 space

$color->as_hsv

Return a new value representing the color in HSV space

$color->as_hsl

Return a new value representing the color in HSL space

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>