引入扩展的步骤 引入扩展的步骤:
1: 写一个PHP文件,内容为
<?php phpinfo() ?>
2: 打开该文件,并搜索php.ini,查看php.ini的位置
3: 打开该php.ini,搜索相应的dll,并取消行首的";"
...
;extension=php_gd2.dll
...
改为
extension=php_gd2.dll
4:重启apache
ctrl+f 搜索gd就会出现拓展
GD画图流程
- 新建空白画布(指定宽高)
- 创建颜料
- 画图形(椭圆,矩形,直线等),或写字
- 输出/保存图形
- 销毁画布(关闭画板)
// 1) 创建画布 imagecreatetruecolor(宽,高);
$im = imagecreatetruecolor(300,200);
// 2) 创建颜料 imagecolorallocate(画布,红,绿,蓝)
$red = imagecolorallocate($im , 255 , 0 ,0);
// 3) 画椭圆 imageellipse(画布 , 圆心x坐标 , 圆心y坐标 , 宽 , 高 , 边框颜色)
imageellipse($im,150,100,300,200,$red);
// 4) 输出imagepng(画布[,保存位置]),imagejpeg(),imagegif()
imagepng($im , './test1.png');
// 5) 销毁画面 imagedestroy(画布)
imagedestroy($im);
生成验证码
/**
* 生成随机字符串
* @param int $length 产生几位的随机字符
*/
function randStr($length=6) {
$str = str_shuffle('ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjklmnpqrstuvwxyz23456789');
$str = substr($str, 0 , $length);
return $str;
}
//1 创建画布
$img = imagecreatetruecolor(60, 40);
//2 创建颜色
$red = imagecolorallocate($img, 255, 0, 0);
$gray = imagecolorallocate($img, 200, 200, 200);
//3 填充颜色
imagefill($img, 0, 0, $gray);
//4 水平的画一行字符串
参数: 画布,字体(1-5),str的x轴开始处,str的y轴开始处,str,字符串颜色
imagestring ($img , 5 , 10 , 5 , randStr(4) , $red );
//5 保存图片
//通知浏览器 接下来输出的是png图片
header('Content-type:image/png');
//不加第二个参数 浏览器会将图片的二进制信息输出在浏览器上,它会按照文字来理解这个图片
imagepng($img);
// 6 销毁画布
imagedestroy($img);