验证码绘制
来源:互联网 发布:lol mac国服怎么取消了 编辑:程序博客网 时间:2024/06/11 03:00
验证码绘制
1.产生验证码字符串
使用ASCII码和sprintf函数生成验证码字符串
ASCII码对应字符如下:
数字:48-57
小写字母:97-122
大写字母:65-90
sprintf('%c',ASCII); //将ASCII码转为对应字符
2.绘制验证码
绘制步骤:
(1)创建画布
(2)创建画笔
(3)填充背景色
(4)绘制验证码
(5)显示图片
(6)销毁图片资源
3.实例
<?phpheader('Content-Type:image/png');//echo sprintf('%c', 67);//1. 产生验证码字符串$code = '';//每次循环随机产生一个字符,拼接到$code中for($i = 0; $i < 4; $i++){ $tmp = rand(1,3); switch ($tmp){ case 1: //随机产生一个0-9之间的数字,拼接到$code中 $code .= sprintf('%c', rand(48, 57)); break; case 2: //随机产生一个A-Z之间的字符,拼接到$code中 $code .= sprintf('%c', rand(65, 90)); break; case 3: //随机产生一个a-z之间的字符,拼接到$code中 $code .= sprintf('%c', rand(97, 122)); break; }}//开启session//session_start();//将验证码存入session//$_SESSION['code'] = $code;//2. 绘制验证码//① 创建画布$img = imagecreatetruecolor(90, 30);//参数:画布宽、高//② 创建画笔$red = imagecolorallocate($img, 255, 0, 0);//参数:画布资源和RGB色值$green = imagecolorallocate($img, 0, 255, 0);$blue = imagecolorallocate($img, 0, 0, 255);$white = imagecolorallocate($img, 255, 255, 255);$black = imagecolorallocate($img, 0, 0, 0);$tmp = imagecolorallocate($img, 128, 128, 128);$arr = array($red, $green, $blue, $white, $black);//③ 填充背景色imagefill($img, 0, 0, $tmp);//④ 绘制验证码for($i = 0; $i < 4; $i++){ imagettftext( $img, //画布资源 rand(15, 20), //字体大小 rand(-30, 30), //倾斜角度 10 + 18 * $i, //绘制文字的起始X坐标点 20, //绘制文字的起始Y坐标点 $arr[rand(0,4)],//绘制文字的颜色 'SIMSUN.TTC', //字体文件路径 $code[$i] //绘制的字符串 );}//⑤ 显示图片imagepng($img);//⑥ 销毁图片资源imagedestroy($img);
效果图:
阅读全文
0 0
- 绘制验证码
- 绘制验证码图片
- c#绘制验证码
- GDI+绘制验证码
- 绘制验证码图片
- 绘制验证码
- java绘制验证码
- Java绘制验证码
- 验证码图片绘制
- php 绘制验证码
- 验证码的绘制
- php绘制验证码
- java绘制验证码。
- Android绘制验证码
- 绘制验证码
- 验证码绘制
- JFinal 验证码绘制
- C#绘制验证码图片
- linux命令好多
- Linux下进程的创建过程分析(_do_fork/do_fork详解)--Linux进程的管理与调度
- java int型转char型
- 深入浅出React之第五章:React组件的性能优化
- md5解密技术
- 验证码绘制
- 深入浅出React之第六章:Redux和服务器通信
- 深入浅出React之第七章:使用React-Router实现多页面应用
- 简单回答单点登录的三种方式
- 五. PyQuery
- while opening read connection: jdbc:mysql message from server: Host is not allowed to connect to t
- linux练习
- LINUX下使用elasticsearch-jdbc工具实现MySQL同步到ElasticSearch 以及linux 64位centos系统安装jdk1.8
- Jump Game