版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、php 图片验证技术关键的是用个函数imagestring(这个函数, 老样子看下函数原型, 对理解会有好大的帮助/int imagestring(resource image,int font,int x,int y,string s, int col; 看下手册会有好多帮助imagestring( 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 座标处(图像的左上角为 0, 0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。这里主要有三个关键参数resource image,string s ,int col1,下面来看看resource image
2、 ,int col这二个一起分析, 为啥, 慢慢来看这个image 是划好的图要划图, 要遵循几步1.1第一是创建图像文件流imagecreate(当然用imagecreateturecolor(也可以,这里用imagecreate 来例子,老方法看函数原型和手册的解释resource imagecreate ( int x_size, int y_sizeimagecreate( 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的空白图像。那么咱们就可以使用它来创建一个空白图像.$im=imagecreate(90,30;1.2因为是空白的, 所以要找给它填充的颜色用到
3、这个函数imagecolorallocate(看原型和手册int imagecolorallocate ( resource image, int red, int green, int blue imagecolorallocate( 返回一个标识符,代表了由给定的 RGB 成分组成的颜色。image 参数是 imagecreate( 函数的返回值。red ,green 和 blue 分别是所需要的颜色的红,绿,蓝成分。这些参数是 0 到 255 的整数或者十六进制的 0x00 到 0xFF。imagecolorallocate( 必须被调用以创建每一种用在 image 所代表的图像中的颜色
4、。看下最后一句,imagecolorallocate( 必须被调用以创建每一种用在 image 所代表的图像中的颜色, 那么咱们来建立几种颜色, 来方便以后的填充, 同时这个颜色也是这里主要有三个关键参数resource image,string s ,int colint col 的颜色设置我们来方便设置三个颜色吧$red=imagecolorallocate($im,255,0,0;$white = ImageColorAllocate($im, 255,255,255;$gray = ImageColorAllocate($im, 200,200,200;这三个不用解释了吧, 就是r g
5、 b 配合出来的颜色.1.3,既然空白图像和填充颜色已经出来了, 那我们来填充吧用到这个函数imagefill(int imagefill ( resource image, int x, int y, int colorimagefill( 在 image 图像的坐标 x,y (图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。 imagefill($im,0,0,$white;/用白色填充是为了让干扰素更好的起作用 那这样我的三个参数中其中二个参数已经解决了,resource image,int col 我们来看第二个参数stri
6、ng s;2第二个参数string s2,1因为是验证码, 防止恶意攻击, 那么一定要设置成随机出来的那样才不会出问题, srand(doublemicrotime(*1000000;/播下一个生成随机数字的种子,以方便下面随机数生成的使用,生成数字和字母混合的验证码$ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"$list=explode(",",$ychar;/explode函数比较简单, 就是提前每个间隔, 的字符并把他们组成数组, 不理
7、解的看下手册吧, 很容易理解的已经产生了一个包含这36个字符的数组, 剩下的就是让他们产生随机的四位数了for($i=0;$i<4;$i+$randnum=rand(0,35;$authnum.=$list$randnum." "/ed 加入一个空格这个循环, 循环的次数是四次, 我还是在解释下吧, 其实很简单,假设第一次循环,rand(0,35意思是随机出现0到35之间的数组假设是第0个, 那么就是1 $authnum=1.""第二次循环如果$randum=12,那么$authnum=1.$list$randnum.""也就是
8、$authnum=1 C;如此循环到第四位,那么就这样产生了随机的四位数,既然三个参数我们都解决了, 那么就可以用imagestring(函数来创建图片了,imagestring($im, 5, 10, 3, $authnum, $red;创建了以后, 我们要输出图片imagepng($im;imagedestroy($im;同时我们要在文件头说明, 要输出的文件的类型Header("Content-type: image/PNG"3其实功能是实现了, 但是为了更好的安全, 我们要加入干扰素,啥是干扰素就是干扰的因素呗, 哈用到这个函数int imagesetpixel ( resource image, int x, int y, int colorimagesetpixel( 在 image 图像中用 color 颜色在 x, y 坐标(图像左上角为 0, 0)上画一个点。看他的解释, 在画一个点, 所以咱们肯定要用个循环了,就是多画几个点, 哈for($i=0;$i<400;$i+ /加入干扰象素$randcolor =ImageColorallocate($im,rand(0,255,rand(0,255,rand(0,255; image
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 县域医疗体系数字化建设可行性报告
- 中小企业数字化转型项目资金申请报告
- 社区养老服务培训手册
- 江苏省南通市启东中学2026-2027学年高二第一学期第一次阶段检测物理试题(含答案)
- 2026年吉林省磐石市高三数学下册期末考试模拟试卷(必刷)附答案
- 2026年辽宁省兴城市高三数学下册期末考试模拟考试卷附完整答案(夺冠)
- 2026年江苏省丹阳市高三数学下册期末考试模拟测试卷及答案【全优】
- 2026年辽宁省瓦房店市高三数学下册期末考试模拟试卷(重点)附答案
- 2026年统计学基础大题库及答案
- 2026年客运资格证城市驾驶案例检测试题含答案
- 农机修理工职业技能等级认定考试复习题库(附答案)
- 沃尔玛商品汰换策略
- 雨课堂学堂在线学堂云《实验室安全教育(西南石油)》单元测试考核答案
- 2026年包头铁道职业技术学院单招职业技能测试题库附答案详解(满分必刷)
- 2025-2030中国硼矿行业营销模式及竞争格局分析研究报告
- 企业薪酬激励制度设计与实施案例
- 江西省2018-2024年中考满分作文121篇
- 城市更新项目的房地产营销方案
- 地氟烷的临床应用
- 鼠疫相关知识培训课件
- 围手术期疼痛管理新进展
评论
0/150
提交评论