NAME
Color::ANSI::Util - Routines for dealing with ANSI colors
VERSION
version 0.01
SYNOPSIS
use Color::ANSI::Util qw(
ansi16_to_rgb
ansi256_to_rgb
rgb_to_ansi16
rgb_to_ansi256
);
# convert ANSI-16 color to RGB
say ansi16_to_rgb("31"); # => "800000" (red)
say ansi16_to_rgb("red"); # => "800000" (ditto)
say ansi16_to_rgb("31;1"); # => "ff0000" (red bold)
say ansi16_to_rgb("bold red"); # => "ff0000" (ditto)
# convert RGB to ANSI-16
say ansi16_to_rgb("ac0405"); # => "31" (closest to red)
say ansi16_to_rgb("f01010"); # => "31;1" (closest to bold red)
# convert ANSI-256 color to RGB
say ansi256_to_rgb(204); # => "ff5f87"
# convert RGB to ANSI-256 color
say rgb_to_ansi256("ff5f88"); # => 204 (closest)
DESCRIPTION
This module provides routines for dealing with ANSI colors.
Keywords: xterm, xterm-256color, terminal
FUNCTIONS
ansi16_to_rgb($color) => STR
Convert ANSI-16 color to RGB. $color
can be 30-37, or "30;1" to "37;1" (for bold), or color names "black", "red", "green", "yellow", "blue", "magenta", "cyan", "white" with "bold" to indicate bold/bright.
rgb_to_ansi16($color) => STR
Convert RGB to ANSI-16 color. $color
is 6-hexdigit RGB color like "abcdef". Will pick the closest color. Return color in the form that is convenient for printing ANSI escape code to set foreground color, e.g. "31", "31;1" (when printed as color code, "\e[31m" or "\e[31;1m"). To set background color, add decimal 10 value to the first number, e.g. "\e[41m" or "\e[41;1m".
ansi256_to_rgb($color) => STR
Convert ANSI-256 color to RGB. $color
is a number from 0-255.
rgb_to_ansi256($color) => STR
Convert RGB to ANSI-256 color. $color
is 6-hexdigit RGB color like "abcdef". Will pick the closest color. Return number between 0-255. Note: to print ANSI escape code to set foreground color, use: "\e[38;5;<color>m" and to set background color: "\e[48;5;<color>m".
BTW, ANSI code to set RGB foreground color (supported by Konsole/Yakuake): "\e[38;2;<R>;<G>;<B>m" and to set RGB background color: "\e[48;2;<R>;<G>;<B>m", where R, G, B are decimal values.
BUGS/NOTES
Algorithm currently not very efficient.
SEE ALSO
http://en.wikipedia.org/wiki/ANSI_escape_code
AUTHOR
Steven Haryanto <stevenharyanto@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.