# Introduction

PHP is not limited to creating just HTML output. It can also be used to create and manipulate image files in a variety of different image formats, including GIF, PNG, JPEG, WBMP, and XPM. Even more conveniently, PHP can output image streams directly to a browser. You will need to compile PHP with the GD library of image functions for this to work. GD and PHP may also require other libraries, depending on which image formats you want to work with.

You can use the image functions in PHP to get the size of JPEG, GIF, PNG, SWF, TIFF and JPEG2000 images.

With the exif extension, you are able to work with information stored in headers of JPEG and TIFF images. This way you can read meta data generated by digital cameras. The exif functions do not require the GD library.

> Note: Read the requirements section about how to expand image capabilities to read, write and modify images. To read meta data of pictures taken by digital cameras you need the above mentioned exif extension.

> Note: The getimagesize() function does not require the GD extension.

Caution

While the bundled version of the GD library uses the Zend memory manager to allocate memory, system versions do not, so that memory_limit does not apply.

GD supports a varity of formats, below is a list of formats supported by GD and notes to their availability including read/write support.

Formats supported by GD
Format | Read support | Write support | Notes
--- | --- | --- | ---
JPEG | `TRUE` | `TRUE` |
PNG | `TRUE` | `TRUE` |
GIF | `TRUE` | `TRUE` | Available as of GD 2.0.28 and PHP 5.0.1
XBM | `TRUE` | `TRUE` |
XPM | `TRUE` | `FALSE` | Read support available on Windows as of PHP 5.3.19.
WBMP | `TRUE` | `TRUE` |
WebP | `TRUE` | `TRUE` | PHP 5.4+
BMP | `TRUE` | `TRUE` | Available as of GD 2.1.0 and PHP 7.2.0

Despite most formats being available for both reading and writing in the above table, doesn't mean that PHP was compiled with support for them. To find out which formats that was available to GD during compilation, use the gd_info() function, for more information about compiling support for one or more formats, see the installation chapter.