This tutorial will tell you how to write text to a blank dynamically generated PNG image in PHP. This is fairly simple, so it will just be the first step in a series of tutorials dealing with images in PHP. The image functions require the GD library to be installed.
The code we're using and the output is below, and below that is an explanation of what the code does.
// create an image with width 100px, height 20px $image = imagecreate(100, 20); // create a red colour for the background // as it is the first call to imagecolorallocate(), this fills the background automatically $red_background = imagecolorallocate($image, 255, 0, 0); // create a black colour for writing on the image $black = imagecolorallocate($image, 0, 0, 0); // write the string "tiposaurus" on the image // the top left of the text is at the position (10, 2) imagestring($image, 4, 10, 2, 'tiposaurus', $black); // output the image // tell the browser what we’re sending it Header('Content-type: image/png'); // output the image as a png imagepng($image); // tidy up imagedestroy($image); ?>
The first step is to tell PHP to create the image, we do this with the
imagecreate() function, which takes the desired width and height as parameters. This returns the image identifier, which we store in the variable $image.
Next, we use the
imagecolorallocate() function to define some colours for use in our image. This takes as parameters, the image identifier we're using, then the red, green and blue values for the colour. The first time we call
imagecolorallocate() it fills in the background of the image with that colour.
We then use the
imagestring() function to write text on the image. This function takes six parameters: the image identifier, an integer 1-5 determining which built in font to use (we're choosing 4), x and y coordinates giving the top left position of the text, the text to write, and the colour to write it in.
It's then time to output the image.
First, we need to tell the browser what type of image we're sending (this is normally text, which wouldn't work for images), we do this with the line:
Next, we need to tell PHP to output the image as a PNG, this is done with the
imagepng() function, which takes the image identifier as a parameter.
That's it! The last thing we do is to use the
imagedestroy() function to delete the image from memory, it takes the image identifier as a parameter.