NAME
Image::Caa - Colored ASCII Art
SYNOPSIS
use Image::Caa;
use Image::Magick;
# load an image
my $image = Image::Magick->new;
$image->Read('sunset.jpg');
# display it as ASCII Art
my $caa = new Image::Caa();
$caa->draw_bitmap(0, 0, 40, 20, $image);
# some fancy options
my $caa = new Image::Caa(
driver => 'DriverANSI',
dither => 'DitherOrdered8',
black_bg => 1,
);
$caa->draw_bitmap(0, 0, 40, 20, $image);
DESCRIPTION
This module outputs Image::Magick
image objects as ASCII Art, using a variety of output dithering modes and output drivers (currently supported is a plain old ANSI termical output driver and a curses driver).
METHODS
new( opt => 'value', ... )
-
Returns a new
Image::Caa
object. The options are as follows:driver
Output driver. Valid values are:
DriverANSI
(default)DriverCurses
dither
Dithering mode. Valid values are:
DitherNone
(default)DitherOrdered2
DitherOrdered4
DitherOrdered8
DitherRandom
black_bg
Set to 1 to enable black background mode. By default, we use colored backgrounds to allow 256 colors (16 foreground x 16 background)
window
Used only by the Curses output driver. Indicates the Curses window to write output into.
draw_bitmap($x1, $y1, $x2, $y2, $image)
-
Draws the image
$image
within the box bounded by($x1,$y1)-($x2,$y2)
. Note that the default (ANSI) output driver ignores the origin position as uses only the absolute box size.
EXTENDING
Both the dithering and driver backends are plugable and fairly easy to create - just create modules in the Image::Caa::* namespace. Dither modules need to implement the new()
, init($line)
, get()
and increment()
methods. Driver modules need to implement the new()
, init()
, set_color($fg, $bg)
, putchar($x, $y, $char)
and fini()
methods. Look at the existing modules for guidance.
AUTHORS
Copyright (C) 2006, Cal Henderson <cal@iamcal.com>
This library is based on libcaca's bitmap.c
libcaca is Copyright (C) 2004 Sam Hocevar <sam@zoy.org>
libcaca is licensed under the GNU Lesser General Publice License