NAME
Image::Timeline - Create GIF or PNG timelines
SYNOPSIS
use Image::Timeline;
my $t = new Image::Timeline(width => 400);
$t->add('J.S. Bach', 1685, 1750);
$t->add('Beethoven', 1770, 1827);
$t->add('Brahms', 1833, 1897);
$t->add('Ravel', 1875, 1937);
...
# For older versions of GD:
$t->write_gif('composers.gif');
# For newer versions of GD:
$t->write_png('composers.png');
# Get the GD object
my $img = $t->draw;
DESCRIPTION
This module creates bar-format timelines using the GD.pm module. Depending on the version of GD you have, you can produce either GIF or PNG files.
See the file `t/truth.gif' for example output.
METHODS
new()
Creates a new timeline object. Accepts several named parameters that affect how the timeline is created:
add(label, start, end)
Adds a new entry to the timeline. Supply a label that you want to include in the image, the starting date, and the ending date.
draw()
Creates the `GD' object and returns it. This method is where all the real work is done - the code must figure out things like how to squeeze the entries most compactly but avoid collisions between bars, when to draw labels above their bars and when below (again, to avoid collisions between labels), the image's height (a function of how many concurrent entries it contains), and so on.
write_png(filename)
write_gif(filename)
A convenience method which writes the timeline to a file. Because of some Unisys/Compuserve/GD patent issues that I don't want to get involved in, writing PNG output requires a version of GD newer than 1.19, while writing GIF output requires GD version 1.19 or older.
LIMITATIONS
Currently all dates/times are specified as integers, which are meant to represent years. Finer granularity (time of day) isn't supported yet, but it probably could be if it's desired (or someone gives me a patch).
Doesn't yet fully test the PNG capabilities during 'make test'. This is just because I haven't yet found time to build all the necessary PNG libraries on my system, so I haven't gotten the benchmark image built. Please let me know whether this works correctly, and maybe even send me the 't/testdata.png' file created so I can include it here.
AUTHOR
Ken Williams, ken@forum.swarthmore.edu
COPYRIGHT
Copyright 2001 Ken Williams. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
perl(1), GD(3)