NAME
Graphics::ColorNames - defines RGB values for common color names
REQUIREMENTS
Graphics::ColorNames
should work on Perl 5.005.
It uses only standard modules.
Installation
Installation is pretty standard:
perl Makefile.PL
make
make test
make install
SYNOPSIS
use Graphics::ColorNames qw( hex2tuple tuple2hex );
tie %NameTable, 'Graphics::ColorNames', 'X';
my $rgbhex = $NameTable{'green'}; # returns '00ff00'
my $rgbhex = tuple2hex( 0, 255, 0 ) # returns '00ff00'
my @rgbtup = hex2tuple( $rgbhex ); # returns (0, 255, 0)
DESCRIPTION
This module defines RGB values for common color names. The intention is to (1) provide a common module that authors can use with other modules to specify colors; and (2) free module authors from having to "re-invent the wheel" whenever they decide to give the users the option of specifying a color by name rather than RGB value.
For example,
use Graphics::ColorNames 'hex2tuple';
tie %COLORS, 'Graphics::ColorNames';
use GD;
$img = new GD::Image(100, 100);
$bgColor = $img->colorAllocate( hex2tuple( $COLORS{'CadetBlue3'} ) );
Though a little 'bureaucratic', the meaning of this code is clearer: $bgColor
(or background color) is 'CadetBlue3' (which is easier to for one to understand than 0x7A, 0xC5, 0xCD
). The variable is named for its function, not form (ie, $CadetBlue3
) so that if the author later changes the background color, the variable name need not be changed.
Usage
The interface is through a tied hash:
tie %NAMETABLE, 'Graphics::ColorNames', SCHEME
where %NAMETABLE
is the tied hash and SCHEME
is the color scheme. Currently three schemes are available:
- X
-
550 color names used in X-Windows. This is the default naming scheme, since it provides the most names.
- HTML
-
16 common color names defined in the HTML 4.0 specification. These names are also used with CSS and SVG.
- Windows
-
16 commom color names used with Microsoft Windows and related products. These are actually the same colors as
HTML
, although with different names.
RGB values can be retrieved with a case-insensitive hash key:
$rgb = $colors{'AliceBlue'};
The value returned is in the six-digit hexidecimal format used in HTML and CSS (without the initial '#'). To convert it to separate red, green, and blue values (between 0 and 255), use the hex2tuple
function:
@rgb = hex2tuple( $colors{'AliceBlue'} );
or
($red, $green, $blue) = hex2tuple( $colors{'AliceBlue'});
To convert separated red, green, and blue values into the corresponding RGB hexidecimal format, use the tuple2hex
function:
$rgb = tuple2hex( $red, $green, $blue );
The hex2tuple
and tuple2hex
functions are not exported by default. You must specify them explicitly when you 'use' the module.
CAVEAT
This module is experimental. The interface may change.
AUTHOR
Robert Rothenberg <rrwo@cpan.org>
CONTRIBUTORS
Alan D. Salewski <alans@cji.com> for feedback and the addition of tuple2hex
.
LICENSE
Copyright (c) 2001 Robert Rothenberg. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.