利用php生成验证码
- <?php
- /**
- * php生成验证码
- * @param $width 画布宽
- * @param $height 画布高
- * @param $vcodelen 验证码长度
- * @param $pointnum 干扰像素点数量
- * @param $linenum 干扰线条数量
- *
- * 思路:创建验证码画布,生成并填充背景色,生成验证码内容/干扰像素点/线,填充到画布,输出。
- */
- $width = 100;
- $height = 30;
- $vcodelen = 4;
- $pointnum = 200;
- $linenum = 3;
- // 创建画布
- $image = imagecreatetruecolor($width, $height);
- // 创建色块
- $bgcolor = imagecolorallocate($image, 255, 255, 255);
- // 填充画布背景色
- imagefill($image, 0, 0, $bgcolor);
- // 验证码内容
- for ($i=0; $i < $vcodelen; $i++) {
- // 字体大小
- $fontsize = 5;
- // 字体颜色,颜色在限定范围内随机
- $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
- $data = 'abcdefghijklmnopqrstuvwxyz0123456789';
- // 验证码内容在以上字符串内随机截取
- $fontcontent = substr($data, rand(0,strlen($data)),1);
- // 字符串显示位置
- $x = ($i*$width/4)+rand(5,15);
- $y = rand(5,10);
- // 字符串填充图片
- // imagestring的字体大小可选1-5,字体再大需要用imagettftext函数(需要字体文件)
- imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
- // imagettftext($image, $fontsize, 0, $x, $y, $fontcolor, '/font/Geneva.dfont', $fontcontent);
- }
- // 干扰像素点
- for ($i=0; $i < $pointnum; $i++) {
- $pointcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
- // 画布填充像素点函数
- imagesetpixel($image, rand(0,$width), rand(0,$height), $pointcolor);
- }
- // 干扰线条
- for ($i=0; $i < $linenum; $i++) {
- $linecolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
- // 画布填充线条函数
- imageline($image, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height), $linecolor);
- }
- // 图片输出格式
- header('content-type: image/png');
- // 输出验证码图片
- imagepng($image);
- // 销毁画布
- imagedestroy($image);
- ?>
利用php生成验证码的更多相关文章
- 利用kaptcha生成验证码的详细教程
kaptcha是一个简单好用的验证码生成工具,有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.Ka ...
- 利用django-simple-captcha生成验证码
参考文档 http://django-simple-captcha.readthedocs.io/en/latest/ django支持1.7+ 1.安装 pip install django-sim ...
- Javaweb中利用kaptcha生成验证码
引入kaptcha-2.3-jdk15.jar包 在web.xml中进行配置 <servlet> <servlet-name>Kaptcha</servlet-name& ...
- 利用PIL创建验证码
1. 随机生成rgb 元组 def random_RGB(min, max): return tuple([random.randint(min, max) for i in range(3)])2. ...
- 学习笔记:利用GDI+生成简单的验证码图片
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
- Python利用PIL生成随机验证码图片
安装pillow: pip install pillow PIL中的Image等模块提供了创建图片,制作图片的功能,大致的步骤就是我们利用random生成6个随机字符串,然后利用PIL将字符串绘制城图 ...
- C# DateTime的11种构造函数 [Abp 源码分析]十五、自动审计记录 .Net 登陆的时候添加验证码 使用Topshelf开发Windows服务、记录日志 日常杂记——C#验证码 c#_生成图片式验证码 C# 利用SharpZipLib生成压缩包 Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库
C# DateTime的11种构造函数 别的也不多说没直接贴代码 using System; using System.Collections.Generic; using System.Glob ...
- PHP利用jquery生成各种验证码和Ajax验证
PHP生成验证码图片 PHP生成验证码的原理:使用PHP的GD库,生成一张带验证码的图片,并将验证码保存在Session中.PHP 生成验证码的大致流程有: .产生一张png的图片: .为图片设置背景 ...
- 利用random模块生成验证码
random模块 该模块用于数学或者数据相关的领域,使用方法非常简单下面介绍常用的放法 1.随机小数 random.random() 2.随机整数random.randint(1,5) # 大于等于1 ...
随机推荐
- 解决win10磁盘占用过大的问题(亲测有效)
问题:打开任务管理器,经常会发现磁盘占用95%以上,电脑很卡,下面是解决方案 方法: 1.关闭家庭组. (1)搜索服务,找到“HomeGroupListener”服务,右键单击“属性”.在弹出属性界面 ...
- Fast Matrix Calculation 矩阵快速幂
One day, Alice and Bob felt bored again, Bob knows Alice is a girl who loves math and is just learni ...
- 洛谷—— P2196 挖地雷
https://www.luogu.org/problem/show?pid=2196 题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定 ...
- vim 快速搜索的快捷键
当光标在某个单词上面的时候 按 shift + #键(或 shift + * )就可以了!!! ----------------------------------- If you are worki ...
- [Vue @Component] Pass Props to Vue Functional Templates
Functional templates allow you to create components consisting of only the template tag and exposing ...
- 如何修改ICO文件的尺寸
使用Axialis IconWorkshop,该软件下载地址: http://www.xiazaiba.com/html/161.html 尺寸过大的ICO将无法作为应用程序的图标,如下图所示,这些素 ...
- c#复制文件、文件夹代码
c#没有复制目录的代码,需要通过递归实现复制目录: 使用方法: 1.把c:\temp\index目录下的所有子目录和文件复制到 c:\temp\newindex目录下. bool copy = Cop ...
- 【转】MySQL随机字符串生成
DROP FUNCTION IF EXISTS rand_string; DELIMITER $$ CREATE FUNCTION rand_string(str_length TINYINT UNS ...
- Vim 经常使用快捷键及键盘图
Vim经常使用的快捷键 h - 光标左移一个字符 j - 光标下移一个字符 k - 光标上移一个字符 l - 光标右移一个字符 下移15行 - 15j Ctrl + f - 屏幕向下移动一页 ...
- 3736 【HR】万花丛中2
3736 [HR]万花丛中2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description HR神犇在成功攻略ZX后,花心 ...