gd 2.0.36

A graphics library for fast image creation

Follow this link to the latest version of this document.

UPGRADING UNIX USERS: READ THIS FIRST! Modern versions of gd install by default to /usr/local/lib and /usr/local/include. If you already have an older version of gd in /usr/lib and /usr/include, you may wish to use:
./configure --prefix=/usr
To ensure that your new installation overwrites the old.

GIF support has been restored in gd 2.0.28 and above. The well-known patents on LZW compression held by Unisys have expired in all countries. British Telecom and IBM may hold related patents but have never chosen to require royalties for GIF applications, to the best of my knowledge. I am not a lawyer and cannot give legal advice regarding this issue. PNG remains a superior format especially if lossless truecolor images are needed.

When building from soruce, gd 2.0.36 requires that the following libraries also be installed, in order to produce the related image formats. The win32 binary release (bgd) already contains the appropriate libraries. You may skip libraries associated with formats you do not use:

libpng (see the libpng home page), if you want PNG

zlib (see the info-zip home page), if you want PNG

jpeg-6b or later, if desired (see the Independent JPEG Group home page), if you want JPEG

If you want to use the TrueType font support, you must also install the FreeType 2.x library, including the header files. See the Freetype Home Page, or SourceForge. No, I cannot explain why that site is down on a particular day, and no, I can't send you a copy.

If you want to use the Xpm color bitmap loading support, you must also have the X Window System and the Xpm library installed (Xpm is often included in modern X distributions). Most of the time you won't need Xpm.

Please read the documentation and install the required libraries. Do not send email asking why png.h is not found. Do not send email asking why libgd.so is not found, either. See the requirements section for more information. Thank you!

Table of Contents

Up to the LibGD Homepage

Credits and license terms

In order to resolve any possible confusion regarding the authorship of gd, the following copyright statement covers all of the authors who have required such a statement. If you are aware of any oversights in this copyright notice, please contact Pierre-A. Joye who will be pleased to correct them.

COPYRIGHT STATEMENT FOLLOWS THIS LINE
Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 by Cold Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the National Institutes of Health.

Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 by Boutell.Com, Inc.

Portions relating to GD2 format copyright 1999, 2000, 2001, 2002, 2003, 2004 Philip Warner.

Portions relating to PNG copyright 1999, 2000, 2001, 2002, 2003, 2004 Greg Roelofs.

Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002, 2003, 2004 John Ellson (ellson@graphviz.org).

Portions relating to gdft.c copyright 2001, 2002, 2003, 2004 John Ellson (ellson@graphviz.org).

Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Pierre-Alain Joye (pierre@libgd.org).

Portions relating to JPEG and to color quantization copyright 2000, 2001, 2002, 2003, 2004, Doug Becker and copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Thomas G. Lane. This software is based in part on the work of the Independent JPEG Group. See the file README-JPEG.TXT for more information.

Portions relating to GIF compression copyright 1989 by Jef Poskanzer and David Rowley, with modifications for thread safety by Thomas Boutell.

Portions relating to GIF decompression copyright 1990, 1991, 1993 by David Koblas, with modifications for thread safety by Thomas Boutell.

Portions relating to WBMP copyright 2000, 2001, 2002, 2003, 2004 Maurice Szmurlo and Johan Van den Brande.

Portions relating to GIF animations copyright 2004 Jaakko Hyvätti (jaakko.hyvatti@iki.fi)

Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation.

This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the authors of gd, not to interfere with your productive use of gd. If you have questions, ask. "Derived works" includes all programs that utilize the library. Credit must be given in user-accessible documentation.

This software is provided "AS IS." The copyright holders disclaim all warranties, either express or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to this code and accompanying documentation.

Although their code does not appear in the current release, the authors also wish to thank Hutchison Avenue Software Corporation for their prior contributions.

END OF COPYRIGHT STATEMENT

What is gd?

gd is a graphics library. It allows your code to quickly draw images complete with lines, arcs, text, multiple colors, cut and paste from other images, and flood fills, and write out the result as a PNG or JPEG file. This is particularly useful in World Wide Web applications, where PNG and JPEG are two of the formats accepted for inline images by most browsers.

gd is not a paint program. If you are looking for a paint program, you are looking in the wrong place. If you are not a programmer, you are looking in the wrong place, unless you are installing a required library in order to run an application.

gd does not provide for every possible desirable graphics operation. It is not necessary or desirable for gd to become a kitchen-sink graphics package, but version 2.0 does include most frequently requested features, including both truecolor and palette images, resampling (smooth resizing of truecolor images) and so forth.

What if I want to use another programming language?

Not all of these tools are necessarily up to date and fully compatible with 2.0.36.

PHP

A variant of gd 2.x is included in PHP 4.3.0. It is also possible to patch PHP 4.2.3 for use with gd 2.0.36 see the gd home page for a link to that information. It would be a Good Idea to merge all of the things that are better in mainstream gd and all of the things that are better in PHP gd at some point in the near future.

Perl

gd can also be used from Perl, courtesy of Lincoln Stein's GD.pm library, which uses gd as the basis for a set of Perl 5.x classes. Highly recommended.

OCaml

gd can be used from OCaml, thanks to Matt Gushee's GD4O project.

Tcl

gd can be used from Tcl with John Ellson's Gdtclft dynamically loaded extension package.

Pascal

Pascal enthusiasts should look into the freepascal project, a free Pascal compiler that includes gd support.

REXX

A gd interface for the REXX language is available.

Any Language

The "fly" interpreter performs gd operations specified in a text file. You can output the desired commands to a simple text file from whatever scripting language you prefer to use, then invoke the interpreter.

Please see the NEWS file, the releases announcements and the ChangeLog for the changes in the releases after 2.0.34.

What's new in version 2.0.34?

From 2.0.34 and later, please check the ISSUES and ChangeLog as well as the releases announcements.

What's new in version 2.0.33?

Version 2.0.33 restores compatibility with older releases of Freetype 2.x in addition to the latest release. Thanks to John Ellson and the graphviz project.

What's new in version 2.0.32?

Version 2.0.32 restores correct detection of Unicode character sets for freetype fonts, which repairs a bug that prevented umlauts from displaying properly. Thanks to John Ellson and the graphviz project. Also, version 2.0.32 builds all test programs smoothly in the absence of libpng.

What's new in version 2.0.31?

A minor type naming conflict prevented bgd.dll from compiling, and it was left out of the distribution as a result. This has been corrected.

What's new in version 2.0.30?

2.0.29 did not compile correctly when freetype was not available. This has been corrected. Thanks to Alessandro Ranellucci.

What's new in version 2.0.29?

What's new in version 2.0.28?

What's new in version 2.0.27?

What's new in version 2.0.26?

The following enhancements and fixes:

What's new in version 2.0.25?

Owing to an oversight while making changes to better accommodate the use of gd as a DLL, the extern qualifier was dropped from the declarations of font pointers in 2.0.24. This has been corrected. Thanks to Richard ("OpenMacNews").

What's new in version 2.0.24?

Windows DLL now uses __stdcall calling convention. Existing applications will require a recompile, using the new version of gd.h, in order to use this version of the DLL. However, Visual BASIC and other non-C programmers will now be able to use the DLL, which is an enormous benefit and justifies the one-time inconvenience to existing DLL users.

The elaborate #ifdef test for older versions of Freetype without FT_ENCODING_MS_SYMBOL was needed in a second place also. Thanks to David R. Morrison.

An off-by-one error in gdImageToPalette caused transparency to be applied to the wrong pixels. Thanks to "Super Pikeman."

What's new in version 2.0.23?

Output dpi specification option added to the gdFTStringExtra structure, thanks to Mark Shackelford. See gdImageStringFTEx.

What's new in version 2.0.22?

What's new in version 2.0.21?

What's new in version 2.0.20?

What's new in version 2.0.19?

What's new in version 2.0.18?

What's new in version 2.0.17?

Minor compilation and packaging problems with 2.0.16 were corrected. If 2.0.16 compiled without errors for you, then you don't need to upgrade to 2.0.17.

What's new in version 2.0.16?

What's new in version 2.0.15?

What's new in version 2.0.14?

What's new in version 2.0.13?

What's new in version 2.0.12?

What's new in version 2.0.11?

What's new in version 2.0.10?

What's new in version 2.0.9?

What's new in version 2.0.8?

What's new in version 2.0.7?

Version 2.0.7 corrects a problem which caused 'configure' to complain that the directory NONE was not found, in various places, causing the configuration process to stop. There are no code changes.

What's new in version 2.0.6?

What's new in version 2.0.5?

What's new in version 2.0.4?

The following contributions from John Ellson: And the following additional fixes:

What's new in version 2.0.3?

What's new in version 2.0.2?

What's new in version 2.0.1?

What's new in version 2.0?

What's new in version 2.0.11?

What's new in version 2.0.10?

What's new in version 2.0.9?

What's new in version 2.0.8?

What's new in version 2.0.7?

Version 2.0.7 corrects a problem which caused 'configure' to complain that the directory NONE was not found, in various places, causing the configuration process to stop. There are no code changes.

What's new in version 2.0.6?

What's new in version 2.0.5?

What's new in version 2.0.4?

The following contributions from John Ellson: And the following additional fixes:

What's new in version 2.0.3?

What's new in version 2.0.2?

What's new in version 2.0.1?

What's new in version 2.0?

What's new in version 2.0.11?

What's new in version 2.0.10?

What's new in version 2.0.9?

What's new in version 2.0.8?

What's new in version 2.0.7?

Version 2.0.7 corrects a problem which caused 'configure' to complain that the directory NONE was not found, in various places, causing the configuration process to stop. There are no code changes.

What's new in version 2.0.6?

What's new in version 2.0.5?

What's new in version 2.0.4?

The following contributions from John Ellson: And the following additional fixes:

What's new in version 2.0.3?

What's new in version 2.0.2?

What's new in version 2.0.1?

What's new in version 2.0?