// <span style="white-space:pre"> </span>//因为要把产生的验证码保存到session中,此处为session开始
session_start();
//创建一张宽100高30的图像
$image = imagecreatetruecolor(100, 30);
//为$image设置背景颜色为白色
$bgcolor = imagecolorallocate($image, 255, 255, 255);
//填充背景颜色
imagefill($image, 0, 0, $bgcolor);

//生成4个随机数
/* for($i=0; $i<4; $i++){
//设置字体为6
$fontsize=6;
//设置背景颜色为随机颜色 三个rand()函数分别对应颜色的rgb让他们产生在0~120这个范围的数值
$fontcolor=imagecolorallocate($image, rand(0,120), rand(0, 120), rand(0,120));
//生成随机数字
$fontcontent=rand(0, 9);
//控制数字出现的位置x->left y->top
$x=($i*100/4)+rand(5, 10);
$y=rand(5, 10);

imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);

}
*/
$captch_code="";
for($i=0; $i<4; $i++){
$fontsize=50;
$fontcolor=imagecolorallocate($image, rand(0,120), rand(0,120), rand(0, 120));
$data="1234567890abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ";
//设置每次产生的字符从$data中每次截取一个字符
$fontcontent=substr($data, rand(0,strlen($data)), 1);
//让产生的四个字符拼接起来
$captch_code.=$fontcontent;
//控制每次出现的字符的坐标防止相互覆盖即x->left y->top
$x=($i*100/4)+rand(5, 10);
$y=rand(5, 10);
//此函数用来将产生的字符在背景图上画出来
imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}
$_SESSION['authcode']=$captch_code;//把产生的验证码存入session中
//用来在背景图片上产生200个干扰点
for($i=0; $i<200; $i++){
//干扰点的颜色
$pointcolor=imagecolorallocate($image, rand(50,200), rand(50, 200), rand(50, 200));
//该函数用来把每个干扰点在背景上描绘出来
imagesetpixel( $image, rand(1, 99), rand(1,29), $pointcolor);
}

//产生三条干扰线
for ($i=0; $i <3 ; $i++) {
# code...
//干扰线的颜色
$linecolor=imagecolorallocate($image, rand(80, 220), rand(80, 220), rand(80, 220));
//画出每条干扰线
imageline($image, rand(1, 99), rand(1, 29), rand(1, 99), rand(1,29), $linecolor);
}
//设置header图片格式为png
header('content-type:image/png');
//显示图片
imagepng($image);   //以 PNG 格式将图像输出到浏览器或文件

//destory
imagedestroy($image);  //图像处理完成后,使用 imagedestroy() 指令销毁图像资源以释放内存,虽然该函数不是必须的,但使用它是一个好习惯。

PHP-生产随机验证码图片的更多相关文章

  1. struts2生成随机验证码图片

    之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来! 首先是生成随机验证码图片的action: ...

  2. Python利用PIL生成随机验证码图片

    安装pillow: pip install pillow PIL中的Image等模块提供了创建图片,制作图片的功能,大致的步骤就是我们利用random生成6个随机字符串,然后利用PIL将字符串绘制城图 ...

  3. python模块之PIL模块(生成随机验证码图片)

    PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 ...

  4. java生成随机验证码图片

    import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; i ...

  5. .net生成随机验证码图片

    /// <summary> /// 自定义图片验证码函数 /// 该函数将生成一个图片验证码,并将生成的code存放于Session["VerifyCode"]变量内. ...

  6. Servlet中Response对象应用2(输出随机验证码图片)

    预期结果如图: 可用于登陆界面的验证 需要使用random类和绘画相关的几个类.以及imageio的内容. import java.awt.*; import java.awt.image.Buffe ...

  7. java生成简单验证码图片

    概要 最近项目需要用java实现输出随机验证码图片到前台,正好有机会接触下java的绘图类,完成需求后也有时间做个总结,写篇随笔记录下也希望能帮助到有同样需求的人! 需求流程图 1.生成随机数 在ja ...

  8. Python使用PIL模块生成随机验证码

    PIL模块的安装 pip3 install pillow 生成随机验证码图片 import random from PIL import Image, ImageDraw, ImageFont fro ...

  9. Servlet实现验证码图片(一)

    Servlet实现数字字母验证码图片(一): 生成验证码图片主要用到了一个BufferedImage类,如下:

随机推荐

  1. nodeJS中使用mongoose模块操作mongodb数据库

    在实际运用中,对于数据库的操作我们不可能一直在cmd命令行中进行操作,一般情况下需要在node环境中来操作mongodb数据库,这时就需要引入mongoose模块来对数据库进行增删改查等操作. 首先, ...

  2. selenium 12306模拟登陆

    代码应用场景 :基于第三方打码网站模拟登陆12306 验证码识别 基于第三方平台超级鹰识别 超级鹰官网:http://www.chaojiying.com/user/ 超级鹰使用流程: 注册 登陆(用 ...

  3. 原创js脚本实现百度网盘任意文件强制下载

    代码: //get file list data var data=require("system-core:context/context.js").instanceForSys ...

  4. 【Git】六、分支管理&冲突解决

    上一节讲了如何和远端的仓库协同工作,这一节介绍一下分支 ---------------------------- 提要 //创建一个分支dev $ git branch dev //切换到dev分支 ...

  5. php的小数位数最长多少位

    在php中, echo 0.1234567890123456;exit; // 结果为:0.12345678901235, 整数部分为0时,最多到14位小数,如果后面还有,就自动四舍五入 echo 7 ...

  6. Image Processing and Analysis_8_Edge Detection:The Design and Use of Steerable Filters——1991

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  7. Jenkins服务器安装与配置

    Jenkins是一个非常出色的持续集成服务器,本文主要介绍在CentOS系统中Jenkins的基本安装配置方法,供参考. 一. 软件包: 1. 下载apache-maven-2.2.1-bin.tar ...

  8. web开发:形变、表格及多行文本操作

    一.2d形变 二.动画 三.表格 四.多个文本垂直居中 五.小米形变案例 一.2d形变 /*1.形变参考点: 三轴交界点*/transform-origin: x轴坐标 y轴坐标; /*2.旋转 ro ...

  9. 三种方式构建C#单例模式

    /// <summary> /// 双检锁实现单例 /// </summary> public sealed class SingletonDoubleCheck { //s_ ...

  10. Girls Like You--Maroon 5

    Girls Like You Spent 24 hours, I need more hours with you (24小时过去 还想和你 相处更久) You spent the weekend g ...