Heim >Backend-Entwicklung >PHP-Tutorial >PHP利用GD库画图跟生成验证码图片

PHP利用GD库画图跟生成验证码图片

WBOY
WBOYOriginal
2016-06-13 12:16:121026Durchsuche

PHP利用GD库画图和生成验证码图片

首先得确定php.ini设置有没有打开GD扩展功能,测试如下

print_r(gd_info());

如果有打印出内容如下,则说明GD功能有打开:

Array(    [GD Version] => bundled (2.0.34 compatible)    [FreeType Support] => 1    [FreeType Linkage] => with freetype    [T1Lib Support] => 1    [GIF Read Support] => 1    [GIF Create Support] => 1    [JPG Support] => 1    [PNG Support] => 1    [WBMP Support] => 1    [XPM Support] =>     [XBM Support] => 1    [JIS-mapped Japanese Font Support] => )

GD画图一般步骤如下:

1.创建一张画布资源

2.创建颜色画笔

3.画图

4.保存图片或输出图片

5.销毁内存画布资源


测试代码如下:

<?phpheader ("Content-type: image/jpeg");$width = 400;   //宽,高$height = 400;  $image = imagecreate($width, $height); //第一步:创建空白图像$white = imagecolorallocate($image, 0, 0, 0);  //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色,即用 imagecreate() 建立的图像。 $green = imagecolorallocate($image, 0, 255, 0); //第二步:为图像分配颜色imageline($image, 0, 20, 400, 20, $green);  //第三步:画线imagerectangle($image,100,40,300,100,$green);  //画矩形imagearc($image, 200, 150, 90, 90, 0, 360, $green); //画圆imagestring($image, 14, 100, 240, "PHP is NiuBi HongHong!", $green); //写字符串$str="abcdefghjklmnpqrstuvwxyz23456789";$randstr = substr(str_shuffle($str), 0,4);imagestring($image, 14, 100, 260, $randstr, $green); //验证码imagettftext($image, 14, 0, 100, 300, $green, &#39;./MSJHBD.TTF&#39;, "中文vsEnglish");  //中文验证// imagejpeg($image,&#39;./test.jpg&#39;);   //在当前路径下保存图片为test.jpgimagejpeg($image);  //第四步:不加文件名,直接输出到网页     imagedestroy($image);   //第五步:销毁,回收资源?>

测试图片如下:



注:GD库强大的可以画各种报表(如柱状图,饼状图等)、缩略图、加水印图和股票走势图

缩略图功能例子:

<?phpheader ("Content-type: image/png");$width = 300;   //原图宽,高$height = 210;  $thumb_width = (int)$width/2;$thumb_height = (int)$height/2;$dst = imagecreate($thumb_width,$thumb_height); //创建缩略图画布$gray = imagecolorallocate($dst, 100, 100, 100);$src = imagecreatefrompng(&#39;./me.png&#39;); //读取原图//把原图copy到缩略图画布上imagecopyresampled($dst, $src, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height); imagepng($dst,&#39;./me_thumb.png&#39;);imagedestroy($dst);imagedestroy($src);?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn