Many people don't know that php can generate non-HTML data. This is very useful for generating image graphics. You can generate a simple advertising horizontal image from the database or simply generate a graphic button.
I used TTF font in the example below
I usually name it 'button.php3':
################################################ #####
-----button.php3------
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);
?>
################################################ #####
It is very important that you cannot put any HTML tags in this file. There cannot be any blank lines before or after the and ?> tags. If you see an incomplete image after using this script, it means that you Possibly a mistyped character outside of the PHP tag.
The above script can be called in the web page using this syntax:
################################################ #####
----test.php-----
New Page 1
################################################ #####
The result of test.php will look like this: .
The 's' parameter is to set the font size.
This is when s=18:
Note I:
The font path "/fonts/TIMES.TTF" can be obtained from the windows/fonts directory. The TIMS.TTF font file can be tested by copying it to the directory fonts of your website. As for the Chinese performance, netizens are yet to provide their feedback
Note that I first drew a black square area and then used white displacement to create a 3D effect. The L method can also be seen on a light background, but you can change the background color to a dark color to see the effect. The same effect is also done for the fonts Express three-dimensionality.
You need to first make sure that your PHP installation is configured to support GD and TTF. Please refer to the PHP FAQ. I recommend copying libgd.a to /usr/local/lib and gd*.h related files to /usr/local/include Then
'make install' for FreeTTF library.
You can find the Chai httf font here http://rover.wiesbaden.netsurf.de/~kikita/!
Note:
The following source code improves the above 弁? can display multi-line text:
################################################ #####
---------------button.php-----------------
Header("Content-type: image/jpeg");
if(!isset($bgred)) $bgred=0;
if(!isset($bggreen)) $bggreen=51;
if(!isset($bgblue)) $bgblue=153;
if(!isset($chred)) $chred=255;
if(!isset($chgreen)) $chgreen=255;
if(!isset($chblue)) $chblue=255;
if(!isset($shadow)) $shadow="yes";
if(!isset($wrappos)) $wrappos=20;
if(!isset($crop)) $crop=2.2;
if(!isset($jpegquality)) $jpegquality=80;
if(!isset($s)) $s=11;
$savetext=$text;
$text=Wordwrap($text,$wrappos," ",0);
if (!isset($font)) $fontname="/www/ttfonts/arialbd.ttf";
else
$fontname="/www/ttfonts/".$font.".ttf";
$size = imagettfbbox($s,0,$fontname,$text);
$dx = abs($size[2]-$size[0]);
$dy = abs($size[5]-$size[3]);
$upper=abs($size[5]);
$under=$size[1];
$th=$upper-$under;
$xpad=9;
if (substr_count($text,chr(13))>=1)
{
$mult=(substr_count($text,chr(13)));
$ypad=($mult*$crop*$s)+$s;
}
else $ypad=($crop-2)*$s;
$im = imagecreate($dx+$xpad,$th+$ypad);
$color = ImageColorAllocate($im, $bgred,$bggreen,$bgblue);
$black = ImageColorAllocate($im, 0,0,0);
$fontcolor = ImageColorAllocate($im, $chred,$chgreen,$chblue);
ImageRectangle($im,0,0,$dx+$xpad-1,$th+$ypad-1,$black);
ImageRectangle($im,0,0,$dx+$xpad,$th+$ypad,$white);
if ($shadow=="yes")
ImageTTFText($im, $s, 0, (int)($xpad/2)-2+1, $th+2+(int)($ypad/2)-3, $black, $fontname, $text);
ImageTTFText($im, $s, 0, (int)($xpad/2)-2, $th+2+(int)($ypad/2)-1-3, $fontcolor, $fontname, $text);
Imagejpeg($im,"",$jpegquality);
ImageDestroy($im);
?>
#######################################################
这可以下面这个 form 来产生:
#######################################################
----------test.php--------------------
New Page 1
#######################################################
或是直接像上例一样呼叫:
#######################################################
----test.php-----
New Page 1
以上就介绍了学会用PHP产生动态的影像图,包括了动态影像图方面的内容,希望对PHP教程有兴趣的朋友有所帮助。