GD is an open source code library for the dynamic creation of images by programmers.
GD is written in C, and "wrappers" are available for Perl, PHP and other languages. GD can read and write many different image formats. GD is commonly used to generate charts, graphics, thumbnails, and most anything else, on the fly.
The most common applications of GD involve website development, although it can be used with any standalone application!
The library was originally developed by Thomas Boutell and is now maintained by many contributors (see the CONTRIBUTORS file) under the umbrella of PHP.net.
If you like to contribute, report bugs, see how to contribute document
For security related issues, please contact us at [email protected]
Support available in or using issues.
We also have a mailing list. To subscribe to any mailing list, send an email to [email protected]. Then emails can be sent to [email protected].
Please visit our homepage for more details.
GD has support for:
- WebP via libwebp
- JPEG via IJG/libjpeg or libjpeg-turbo
- Does not include JPEG 2000
- PNG via libpng
- AVIF via libavif
- This includes AVIF read support if your system's
libheif
has AV1 decoding.
- This includes AVIF read support if your system's
- HEIF via libheif
- TIFF via libtiff
- BMP (builtin)
- GIF (builtin)
- TGA (builtin)
- WBMP (builtin)
- XPM via libXpm
Besides that, GD depends on some external libraries, which are all optional and disabled by default:
- FreeType for rendering fonts
- Fontconfig for configuring and customizing font access
- libraqm for complex text layout
- libimagequant for conversion of RGBA images to 8-bit indexed-color images
- NOTE libimagequant is dual-licensed: GPLv3 and commercial license
CI means whether we have an automatic CI for this platform. If someone has CI for these platforms or any other platforms not listed here and would like to add them to our automatic CI, please get in touch with us, it will much appreciated!
Platform | Support | CI |
---|---|---|
Linux x64 | ✓ | ✓ |
Linux x86 | ✓ | ✓ |
Linux ARM64 | ✓ | ✓ |
Windows x86 | ✓ | ✓ |
Windows x64 | ✓ | ✓ |
Windows arm64 | ✓ | x |
macOS x64 | ✓ | ✓ |
macOS M1 | ✓ | x |
S390 | ✓ | x |
It is also known to work on almost all variations of *BSD, Solaris, etc. We don't have CI nor environment to test them. However many progamming languages binding do test libgd on these platforms.
It should compile with all C99 and C++ compliant compilers, either using CMake or the configure script.
We do have CI using:
- GCC
- CLang
- Visual Studio
- Xcode
- MingW
- GD 2.3 (Branch GD-2.3) serie is in active support for bug fixes. No new additions will be added.
- GD 2.4 (master) is the active development branch. No release date yet.
- GD 3.0 has been started, focusing on high quality 2D Vector drawing APIs and full support of actual ARGB 32 bits/8bits or float. It is not production ready yet