一漂亮的PHP图片验证码实例


Posted in PHP onMarch 21, 2014

一、显示效果
一漂亮的PHP图片验证码实例
二、代码如下

/*
 *  @Author fy
 */
$imgwidth =100; //图片宽度
$imgheight =40; //图片高度
$codelen =4; //验证码长度
$fontsize =20; //字体大小
$charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';
$font = 'Fonts/segoesc.ttf';
$im=imagecreatetruecolor($imgwidth,$imgheight);
$while=imageColorAllocate($im,255,255,255);
imagefill($im,0,0,$while); //填充图像
//取得字符串
$authstr='';
$_len = strlen($charset)-1;
for ($i=0;$i<$codelen;$i++) {
 $authstr .= $charset[mt_rand(0,$_len)];
}
session_start();
$_SESSION['scode']=strtolower($authstr);//全部转为小写,主要是为了不区分大小写
//随机画点,已经改为划星星了
for ($i=0;$i<$imgwidth;$i++){
    $randcolor=imageColorallocate($im,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
 imagestring($im,mt_rand(1,5), mt_rand(0,$imgwidth),mt_rand(0,$imgheight), '*',$randcolor);
    //imagesetpixel($im,mt_rand(0,$imgwidth),mt_rand(0,$imgheight),$randcolor);
}
//随机画线,线条数量=字符数量(随便)
for($i=0;$i<$codelen;$i++) 
{  
 $randcolor=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
 imageline($im,0,mt_rand(0,$imgheight),$imgwidth,mt_rand(0,$imgheight),$randcolor); 
} 
$_x=intval($imgwidth/$codelen); //计算字符距离
$_y=intval($imgheight*0.7); //字符显示在图片70%的位置
for($i=0;$i<strlen($authstr);$i++){
 $randcolor=imagecolorallocate($im,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));
 //imagestring($im,5,$j,5,$imgstr[$i],$color3);
 // imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
 imagettftext($im,$fontsize,mt_rand(-30,30),$i*$_x+3,$_y,$randcolor,$font,$authstr[$i]);
}
//生成图像
header("content-type:image/PNG");
imagePNG($im);
imageDestroy($im);

 

PHP 相关文章推荐
PHP 文件类型判断代码
Mar 13 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
PHP中call_user_func_array()函数的用法演示
Feb 05 PHP
基于php实现长连接的方法与注意事项的问题
May 10 PHP
探讨php define()函数及defined()函数使用详解
Jun 09 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 #PHP
php获取表单中多个同名input元素的值
Mar 20 #PHP
php中的静态变量的基本用法
Mar 20 #PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 #PHP
php数据库备份还原类分享
Mar 20 #PHP
PHP实现微信公众平台音乐点播
Mar 20 #PHP
一个PHP针对数字的加密解密类
Mar 20 #PHP
You might like
php自定义函数之递归删除文件及目录
2010/08/08 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
javascript css float属性的特殊写法
2008/11/13 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
深入源码解析Python中的对象与类型
2015/12/11 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
python实现textrank关键词提取
2018/06/22 Python
python绘制雪景图
2019/12/16 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
党员2014两会学习心得体会
2014/03/17 职场文书
中班开学寄语
2014/04/04 职场文书
项目合作协议书
2014/04/16 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
大学生入党群众意见书
2015/06/02 职场文书
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB