Chapter 2. On-the-Fly Graphics with GD

The GD Perl module reads, manipulates, and writes PNG and JPEG files. Although it is more limited in scope than the ImageMagick package (described in Chapter 3), its size and speed make it well suited for dynamically generating graphics in CGI scripts. GD has become the de facto graphics manipulation module for Perl; other modules such as GD::Graph (described in Chapter 4) extend the GD toolkit to easily accommodate specific graphics tasks such as creating graphs and charts.

Tip

Versions of GD older than 1.20 produce GIFs as output. In 1999 this was changed so that only PNGs and JPEGs were produced, due to Unisys’s unfriendly licensing scheme for software that supports the GIF format. If you really need a library that will produce GIFs, you’ll have to find an older copy of GD and libgd (such as Version 1.19). Additionally, versions of GD prior to 2.0 could handle only 8-bit indexed images, even when generating PNGs and JPEGs.

The GD module was written by Lincoln D. Stein, author of the CGI modules. GD is actually an interface to Thomas Boutell’s gd graphics library, a collection of C routines created for manipulating PNGs for use in web applications; this library is required by the GD module. The GD::Convert module provides additional methods for reading and writing xpm and ppm images, which can be useful when writing Perl/Tk applications.

GD is distributed under similar terms as is Perl itself—the Artistic License or the GPL, at the user’s discretion. ...

Get Perl Graphics Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.