PHP-生产随机验证码图片
// <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-生产随机验证码图片的更多相关文章
- struts2生成随机验证码图片
之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来! 首先是生成随机验证码图片的action: ...
- Python利用PIL生成随机验证码图片
安装pillow: pip install pillow PIL中的Image等模块提供了创建图片,制作图片的功能,大致的步骤就是我们利用random生成6个随机字符串,然后利用PIL将字符串绘制城图 ...
- python模块之PIL模块(生成随机验证码图片)
PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 ...
- java生成随机验证码图片
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; i ...
- .net生成随机验证码图片
/// <summary> /// 自定义图片验证码函数 /// 该函数将生成一个图片验证码,并将生成的code存放于Session["VerifyCode"]变量内. ...
- Servlet中Response对象应用2(输出随机验证码图片)
预期结果如图: 可用于登陆界面的验证 需要使用random类和绘画相关的几个类.以及imageio的内容. import java.awt.*; import java.awt.image.Buffe ...
- java生成简单验证码图片
概要 最近项目需要用java实现输出随机验证码图片到前台,正好有机会接触下java的绘图类,完成需求后也有时间做个总结,写篇随笔记录下也希望能帮助到有同样需求的人! 需求流程图 1.生成随机数 在ja ...
- Python使用PIL模块生成随机验证码
PIL模块的安装 pip3 install pillow 生成随机验证码图片 import random from PIL import Image, ImageDraw, ImageFont fro ...
- Servlet实现验证码图片(一)
Servlet实现数字字母验证码图片(一): 生成验证码图片主要用到了一个BufferedImage类,如下:
随机推荐
- 学习前端第二天之css层叠样式
一.设置样式公式 选择器 {属性:值:} 二.font 设置四大操作 font-size:字体大小 (以像素为单位) font-weight:字体粗细 font-family:字体 ( 可直接跟 ...
- LCD1602 液晶
它是一种专门用来显示字母.数字.符号的点阵型液晶模块 它是由若干个5x7或者5x10的点阵字符位组成 引脚 时序 操作步骤 初始化 写命令(RS=L)设置显示坐标 写数据(RS=H) 指令 清屏: 指 ...
- 获取impala下所有的数据库建表语句
方法一: 现在的导出还是有缺陷的,导出的文件中还是存在其他不必要的信息 #!/bin/bash ##获取数据库 databases=$(hive -e "show databases; ex ...
- 飞漫魏永明:从MiniGUI看嵌入式十年得与失
日前,飞漫软件创始人魏永明,在飞漫成立十周年之际,回顾了公司发展这十年,同时也回顾了嵌入式发展的这十年.魏永明以自身涉及嵌入式产业的方方面面,创新.人员管理.工程管理.教育培训.经营策略等多方面,并且 ...
- python遍历目录下所有文件
# -*- coding:utf-8 -*- import os if __name__ == "__main__": rootdir = '.\data' list = os.l ...
- web开发:javascript动画
一.鼠标事件 二.js盒模型 三.鼠标拖拽 四.键盘事件 五.其他时间应用 六.定时器 七.定时器案例 八.随机数 一.鼠标事件 <!DOCTYPE html> <html> ...
- Hadoop_17_MapRduce_案例2_实现用户手机流量统计(ReduceTask并行度控制)
需求:1.统计每一个用户(手机号)所耗费的总上行流量.下行流量,总流量 1.数据如下:保存为.dat文件(因为以\t切分数据,文件格式必须合适) 1363157985066 13726230503 0 ...
- Python数据库连接池 -组件 DBUtils
DBUtils是Python的一个用于实现数据库连接池的模块 此连接池有两种连接模式: DBUtils提供两种外部接口: PersistentDB :提供线程专用的数据库连接,并自动管理连接. Poo ...
- Java web中文乱码
1.设置工程的编码方式 window-preferences-general-workspace 改成uef-8 2.设置html的编码方式 <meta http-equiv="Con ...
- FFmpeg常用命令学习笔记(二)录制命令
录制命令 1.FFmpeg录屏命令 ffmpeg -f avfoundation -i 1 -r 30 out.yuv -f:指定使用avfoundation采集数据 -i:指定从哪采集数据,它是一个 ...