Creating an Image with PHP’s GD

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, jpg, wbmp, and xpm. Even more convenient, PHP can output image streams directly to a browser.

Solution

PHP’s GD library is a great tool to manipulate graphics on the fly. Use the ImageCreate() function and then use the ImagePng(), ImageJpeg(), or ImageGif function, depending on your system:

<?php
header( “Content-type: image/gif” );
$im = ImageCreate( 153, 20 ); // width, height

$red = ImageColorAllocate( $im, 255, 0, 0 );
$white = ImageColorAllocate( $im, 255, 255, 255 );

ImageString($im,3,3,3,”Programmabilities.com”,$white);
ImageGif( $im );
// Or ImageGif($im, $filename) if you want to save
// it to a file. –Provide an optional second argument.

ImageDestroy( $im ); // Free memory
?>

Discussion

If you run the preceding script, you should see something like the image on this page: http://programmabilities.com/php/image-create.php. Let’s go over this line by line:

Line 2: Print the header telling the Web browser thet this is a GIF image.

Line 3: Create a GD image stream that can be manipulated by any of the other GD functions. The format of this image is not determined until we tell GD that it is a GIF and print it out on line 9.

Line 5: Create the background color for the image and set it to red using the ImageColorAllocate() function.

Line 6: Create the foreground color for the image and set it to white by using the ImageColorAllocate() function.

Line 8: Draw a string to image $im using a built-in font at x-pixel location of 3 and a y-pixel location of 3. The contents of the string is “Programmabilities.com” and the color of the string is white, denoted by the variable $white.

Line 9: Convert the image to a GIF and output to the browser.

Line last: Destroy the memory allocated for the GIF. This is done when the script executes anyway.


Chief Programmabilities, Programmabilities.com