GD图片(画布)的制作及验证码的应用
创建画布:创建画布的函数有
imagecreatetruecolor(width,height);创建画布
width指画布的宽height指画布的高
imagecolorallocate(img,red,green,blue);创建画布句柄
img是一个画布资源,后面的rgb就代表一个颜色!
imagetring(img,size,x,y,string,color);绘制文字
img:画布资源
size:文字的大小,这里只能是1-5,并且5最大
x、y:起始坐标
string:文字内容
color:颜色句柄
imagefill(img,x,y,color);填充背景
img:画布资源
x、y:坐标点
color:要填充的颜色句柄
imageline(img,x1,y1,,x2,y2,color)干扰线
imagesetpixel(img,x1,y1,,x2,y2,color)干扰点
ob_clean();清楚数据缓冲区
输出图片之前设置响应头信息header("Content-type:image/png");这里的png指的是用什么函数输出就用什么函数的后缀
imagepng,imagejpeg,imagejif输出图片的函数
<?php
//设置响应头信息
header("Content-type:text/html;charset=utf-8");
//创建一个画布资源
$img=imagecreatetruecolor(200,50);
//创建画布背景句柄
$color=imagecolorallocate($img,mt_rand(100,200),mt_rand(100,200),mt_rand(200,255));
//填充背景颜色
imagefill($img,0,0,$color);
$arr=array_merge(range('A','Z'),range('a','z'),range(0,20));
//打乱该数组
shuffle($arr);
//利用array_rand()函数随机获取若干个该数组的下标
$rand_key=array_rand($arr,4);
$str='';
foreach($rand_key as $value){
$str.=$arr[$value];
}
session_start();
$session['huabu']=$str;
//循环遍历将文字写在画布上
$pant=ceil(200/(4+1));
for($i=1;$i<=4;$i++){
$strcolor=imagecolorallocate($img,mt_rand(2,20),mt_rand(20,20),mt_rand(20,55));
imagestring($img,5,$i*$pant,20,$str[$i-1],$strcolor);
}
//使用imageline函数给画布添加干扰线
for($i=1;$i<=5;$i++){
$linecolor=imagecolorallocate($img,mt_rand(100,200),mt_rand(100,200),mt_rand(200,255));
imageline($img,mt_rand(0,199),mt_rand(0,49),mt_rand(0,199),mt_rand(0,49),$linecolor);
}
//使用imagesetpixel函数给画布添加干扰点
for($i=1;$i<=200*100*0.01;$i++){
$fillcolor=imagecolorallocate($img,mt_rand(0,200),mt_rand(0,200),mt_rand(0,255));
imagesetpixel($img,mt_rand(0,199),mt_rand(0,49),$fillcolor);
}
//设置画布的响应头
header("Content-type:image/png");
//清除空格
ob_clean();
//输出画布
imagepng($img);
GD图片(画布)的制作及验证码的应用的更多相关文章
- python之使用PIL模块制作随机验证码
制作随机验证码,需要如下知识点: 1.随机验证码的制作(这里用的是random模块随机产生字符) 2.图片的制作 3.随机直线干扰项 4.其他随机干扰项 代码如下: from PIL import I ...
- php GD 和图像处理函数, 制作一张图片
php GD 和图像处理函数, 制作一张图片 // GD 和图像处理函数 // https://www.php.net/manual/zh/ref.image.php // https://www.p ...
- J2EE如何生成验证码图片和点击刷新验证码
验证码图片生成步骤 创建BufferedImage对象. 获取BufferedImage的画笔,即调用getGraphics()方法获取Graphics对象. 调用Graphics对象的setColo ...
- NGUI和UGUI图片字 艺术字(Bitmap图片转文字)制作方法
用图片字而不是图片 美术和程序的配合,需要程序能够很快抓住问题重点并提出解决方案.美术出的图片字比我们使用的字体更好好看,那么是否要一个个图片去拼成数字呢? NGUI创建图片字 准备材料 美术提供的数 ...
- Adobe Fireworks CS6是一款集网页图片设计、制作与编辑为一体的专业软件
Adobe Fireworks CS6是一款集网页图片设计.制作与编辑为一体的专业软件,它不仅可以轻松制作出各种动感的Gif.动态按钮.动态翻转等网络图片,还可以轻松实现大图切割,让网页加载的图片显示 ...
- 笔记11:GDI 制作数字验证码
大二学长让我学下GDI绘制验证码,然后自己就试了试了.找了点视频看了下. 现在会画直线,矩形,字符串,制作验证码 一.绘制一条直线 private void button1_Click(object ...
- 怎样制作PHP验证码?
<?php /** *制作验证码 *1.启动session *2.设定标头 *3.创建画布 *4.创建颜色 *5.创建随机数并放到画布上 *6.将得到的若干随机数放入session中 *7.添加 ...
- java 用Graphics制作模糊验证码
这篇随笔主要是java中制作验证码的效果,由于是在国庆前做的,现在也找不到原载了.我对自己整理的发表一份 生成的验证码效果如下: 一.建立一个工具类,用来生成验证码 package com.dkt.u ...
- CSS 图片倾斜的制作
<style> #zhong{ height:600px; width:1350px; position:relative; z-index:2} .znei{ height:60px; ...
随机推荐
- android中Json的一些应用
JSON(JavaScript Object Notation) :一种轻量级的数据交换格式,基于JavaScript的一个子集. JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语 ...
- Android 蓝牙打印超时问题的处理
http://stackoverflow.com/questions/18657427/ioexception-read-failed-socket-might-closed-bluetooth-on ...
- Repeater控件使用中的一些小问题
网页上用来展示列表的数据,发现还是Repeater比GridView,DetailView之类的要灵活些,所以近期用到了就总结下遇到的一些情况,保留下来以备之后查阅,不用现问度娘了... 自己摸索的, ...
- ios 逆向收录
lldb 远程调试环境搭建:http://www.cnblogs.com/csutanyu/p/3653252.html
- 【IL】IL生成exe的方法
1.将ilasm.exe和fusion.dll用everything找出来,然后复制到system32文件夹 2.执行:ilasm /res:code.res code.il /out:code.ex ...
- 关于一次oracle sqlplus可登陆,但监听起不来的解决。由于listener.log文件超过4G
1.在oracle服务器上cmd 执行 lsnrctl 执行start 过了好久,提示监听程序已经启动. 再执行status 过来好久,才提示命令执行成功. 最后找到原因是因为C:\Oracle\di ...
- autoit小贴士
如何防止程序重复运行? #include <Misc.au3>_Singleton("test") 如何删除脚本程序自身? ;删除脚本程序自身 Run(@ComSpec ...
- Raspberry pi之树莓派基础建设-2
1.ssh pi与本地文件传输 一般ssh是默认会支持sftp的,所以你可以考虑用filezila之类的ftp工具远程连接登陆 2.我考虑到要拍照,前提是你得有个摄像头,usb直接插上去 3.py ...
- Python应用科学计算和图表绘制
今天更新了两个python模块,一个是用于科学计算的numpy模块,另一个是用于绘图的matplotlib模块 python安装模块还是很方便的,安装了pip之后直接使用"pip insta ...
- sql prompt 安装使用教程
sql prompt:和vs的自动提示一样 数据库:2008r2 下载地址:http://download.csdn.net/detail/wozengcong/9048381 安装教程:http:/ ...