php复习 第九天 绘制图形验证码

来源:互联网 发布:淘宝买aj的正品店 编辑:程序博客网 时间:2024/04/28 07:05

ps:不知为何,博主很喜欢正则和绘制这种东西。
使用的话,把$stringText的值取出即可~

<?phpheader("Content-Type:image/jpeg");//告诉浏览器现在要输出图片#图像处理 GD库 #1)打开或创建相关函数:#imagecreatetruecolor 创建真彩画布##2)绘制图像相关函数:#imagecolorallocate 分配颜色#imagefill 区域填充,背景填充#imagesetpixel 画一个单一像素#imageline 画一条线#imagestring 水平地画一行字符串。(可用下面的函数替代)#imagettftext 用TrueType 字体向图像写入文本##3)输出图像相关函数#imagejpeg#header#imagegif#imagepng#imagewbmp##4)释放资源#imagedestroy#在php中可以用GD库来对图像进行处理操作。#由于我使用的是phpStudy集成环境,所以运行phpStudy.exe后,选择php扩展,找到gd2,打钩即可。#案例 生成验证码:#要求1:背景颜色可随机变换#要求2:验证码文本为4位随机小写字母。#要求3:充沛利用点与线来美化验证码。$width = 140;$height = 40;//1.创建--真彩画布$image = imagecreatetruecolor($width,$height);//2.绘制 #背景颜色--rgb颜色整体数值越高,图像颜色越浅。$colorBg = imagecolorallocate($image, rand(150,255),rand(150,255),rand(150,255));#背景色填充imagefill($image, $width-1, $height-1, $colorBg);#绘制干扰点for($i = 0;$i <= 100;$i++){    imagesetpixel($image, rand(1,$width-1), rand(1,$height-1), rand(0,150));}#绘制干扰线及颜色for($i = 1; $i <= 3; $i++){    $colorLine = imagecolorallocate($image, rand(50,150),rand(50,150),rand(50,150));    $x1 = rand(1,$width/2);    $y1 = rand(1,$height/2);    $x2 = rand($width/2,$width-1);    $y2 = rand($height/2,$height-1);    imageline($image, $x1, $y1, $x2, $y2,$colorLine);//x1,y1,x2,y2坐标方式}#1)随机验证图案$stringCode = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');#绘制随机验证文字、颜色for($i = 1; $i <= 4; $i++ ){    $stringText = $stringCode[rand(0,count($stringCode)-1)];    #2)随机倾斜角度    $angle = rand(-15,15);    #3)绘制文字颜色    $colorString = imagecolorallocate($image, rand(1,100), rand(1,100), rand(1,100));    imagettftext($image, 20, $angle, $i*20, 30, $colorString, 'font/Gisha.ttf', $stringText);}//3.输出图像imagejpeg($image);//4.释放资源imagedestroy($imagejpeg);?>

附:这里写图片描述

1 0
原创粉丝点击