一、什么是GD库?
一套操作动态图像的函数库
二、为什么使用GD库?
因为在PHP中不仅要处理文本数据,也需要处理图像数据
三、什么时候使用GD库?
验证码、图像的裁剪、图像的缩略、图像的水印、股票信息图、统计图
四、安装GD库
①检测php/ext目录下是否拥有php_gd2.dll函数库文件
②须在php.ini文件中开启扩展包:extension=php_gd2.dll
③检测是否开启成功:phpinfo();
五、如何操作GD库(PHP手册内GD库操作)
1、创建真彩色画布(创建一块操作图像的内存资源)
$img=imagecreatetruecolor($width,$height);
2、分配颜色
$red=imagecolorallocate($img,255,0,0);
$green=imagecolorallocate($img,0,255,0);
$blue=imagecolorallocate($img,0,0,255);
$white=imagecolorallocate($img,255,255,255);
$black=imagecolorallocate($img,0,0,0);
$color=imagecolorallocate($img,R,G,B);
$color_alpha=imagecolorallocatealpha($img,R,G,B,0~127);
3、操作图像
//画一个矩形并填充
imagefilledrectangle($img,x1,y1,x2,y2,$color);
x1、y1:左上角坐标
x2、y2:右下角坐标
//画一条线段
imageline($img,x1,y1,x2,y2,$color);
x1、y1:左端点坐标
x2、y2:右端点坐标
//画一个圆形并填充
imagefilledellipse($img,cx,cy,$width,$height,$color);
cx:圆心x坐标
cy:圆心y坐标
$width:圆的宽
$height:圆的高
//画一个多边形并填充
imagefilledpolygon($img,$points,$num_points,$color);
$points:按顺序包含有多边形各顶点x和y坐标的数组
$points=array(x1,y1,x2,y2,x3,y3,x4,y4);
$num_points:多边形顶点的总数(>3)
//向图像写入文本
imagettftext($img,$size,$angle,x,y,$color,$fontfile,$text);
$size:字体大小
$angle:文本从左向右的角度,逆时针旋转值
x、y:定义文本第一个字符的基本点
$fontfile:字体文件(.ttf)所在的路径
4、通知浏览器以图像的形式展现
header("content-type:image/png"); (图像格式可自定义)
header("content-type:image/gif");
header("content-type:image/jpeg");
header("content-type:image/wbmp");
5、显示图像
imagepng($img);
imagegif($img);
imagejpeg($img);
imagewbmp($img);
6、回收资源
imagedestroy($img);