O'Reilly logo

PHP Pocket Reference by Rasmus Lerdorf

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Graphics Functions

The graphics functions in PHP can be used to dynamically create a GIF image stream. This stream can either be sent directly to the browser or saved in a standard GIF file. The following example illustrates a number of these image functions:

Header("Content-type: image/gif");
if(!isset($s)) $s=11;
$size = imagettfbbox($s,0, 
  "/fonts/TIMES.TTF",$text);
$dx = abs($size[2]-$size[0]);
$dy = abs($size[5]-$size[3]);
$xpad=9; $ypad=9;
$im = imagecreate($dx+$xpad,$dy+$ypad);
$blue = ImageColorAllocate($im,0x2c,0x6D,
  0xAF);
$black = ImageColorAllocate($im,0,0,0);
$white = ImageColorAllocate($im,255,255,255);
ImageRectangle($im,0,0,$dx+$xpad-1,
  $dy+$ypad-1, $black);
ImageRectangle($im,0,0,$dx+$xpad,$dy+$ypad,
  $white); 
ImageTTFText($im, $s, 0, (int)($xpad/2)+1, 
  $dy+(int)($ypad/2), $black, 
  "/fonts/TIMES.TTF", $text);
ImageTTFText($im, $s, 0, (int)($xpad/2), 
  $dy+(int)($ypad/2)-1, $white, 
  "/fonts/TIMES.TTF", $text);
ImageGif($im);
ImageDestroy($im);

This example should be saved as a file named button.php3, for example, and then called as part of an HTML <IMG> tag like this:

<IMG SRC="button.php3?s=13&text=Help" >.

This produces a blue-shaded button with white shadowed text using a 13-point Times font.

Because of Unisys patent issues, the GD library (as of version 1.6) that PHP links against to generate GIF images no longer supports the GIF format. Older versions of the GD library will continue to work fine with PHP, and as of PHP-3.0.13 you can use the later versions of GD to create ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required