-
- /*
- php generates text png images, calling method:
- http://www.yourdomian.com/text_png.php3?msg=helloworld+class&rot=15&size=48&font=fonts/ARIAL. TTF
-
- */
-
- Header("Content-type: image/png");
-
- class textPNG {
- var $font = 'fonts/TIMES.TTF'; //Default font. Relative to the script storage directory Path.
- var $msg = "undefined"; // Default text.
- var $size = 24;
- var $rot = 0; // Rotation angle.
- var $pad = 0; // Padding.
- var $transparent = 1; // Text transparency.
- var $red = 0; // On a black background...
- var $grn = 0;
- var $blu = 0;
- var $bg_red = 255; // Set the text is white.
- var $bg_grn = 255;
- var $bg_blu = 255;
-
- function draw() {
- $width = 0;
- $height = 0;
- $offset_x = 0;
- $offset_y = 0;
- $ bounds = array();
- $image = "";
-
- // Determine the text height.
- $bounds = ImageTTFBBox($this->size, $this->rot, $this->font, "W ");
- if ($this->rot < 0) {
- $font_height = abs($bounds[7]-$bounds[1]);
- } else if ($this->rot > 0 ) {
- $font_height = abs($bounds[1]-$bounds[7]);
- } else {
- $font_height = abs($bounds[7]-$bounds[1]);
- }
-
- // Determine the border height.
- $bounds = ImageTTFBBox($this->size, $this->rot, $this->font, $this->msg);
- if ($this->rot < 0) {
- $width = abs($bounds[4]-$bounds[0]);
- $height = abs($bounds[3]-$bounds[7]);
- $offset_y = $font_height;
- $ offset_x = 0;
-
- } else if ($this->rot > 0) {
- $width = abs($bounds[2]-$bounds[6]);
- $height = abs($bounds[1 ]-$bounds[5]);
- $offset_y = abs($bounds[7]-$bounds[5])+$font_height;
- $offset_x = abs($bounds[0]-$bounds[6]);
-
- } else {
- $width = abs($bounds[4]-$bounds[6]);
- $height = abs($bounds[7]-$bounds[1]);
- $offset_y = $font_height; ;
- $offset_x = 0;
- }
-
- $image = imagecreate($width+($this->pad*2)+1,$height+($this->pad*2)+1);
-
- $ background = ImageColorAllocate($image, $this->bg_red, $this->bg_grn, $this->bg_blu);
- $foreground = ImageColorAllocate($image, $this->red, $this-> grn, $this->blu);
-
- if ($this->transparent) ImageColorTransparent($image, $background);
- ImageInterlace($image, false);
-
- // Draw.
- ImageTTFText($image , $this->size, $this->rot, $offset_x+$this->pad, $offset_y+$this->pad, $foreground, $this->font, $this->msg) ;
-
- // Output in png format.
- imagePNG($image);
- }
- }
-
- $text = new textPNG;
-
- if (isset($msg)) $text->msg = $msg; / / Text to be displayed
- if (isset($font)) $text->font = $font; // Font
- if (isset($size)) $text->size = $size; // Text size
- if (isset($rot)) $text->rot = $rot; // Rotation angle
- if (isset($pad)) $text->pad = $pad; // padding
- if (isset( $red)) $text->red = $red; // Text color
- if (isset($grn)) $text->grn = $grn; // ..
- if (isset($blu)) $text->blu = $blu; // ..
- if (isset($bg_red)) $text->bg_red = $bg_red; // Background color.
- if (isset($bg_grn)) $text- >bg_grn = $bg_grn; // ..
- if (isset($bg_blu)) $text->bg_blu = $bg_blu; // ..
- if (isset($tr)) $text->transparent = $tr; // Transparency (boolean).
-
- $text->draw();
- ?>
Copy code
For more application examples of the GD library, please refer to:
Introduction to how to enable gd2 extension in php
Example of php verification code (GD library generates verification code)
Solution to Chinese garbled characters in php GD library
Example of php GD library generating verification code
php GD library code to upload images and create thumbnails
php uses the GD library to generate images in bmp format (imagebmp)
|