版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024店铺转让合同范例
- 2024年采购合同变更协议
- 审计业务约定书模板
- 私人购房合同模板
- 深圳市房地产出租合同书
- 专业保证担保合同大全
- 电视广告代理权协议
- 住宅拆迁协议书
- 会计师会议协议书
- 2024版自愿离婚协议书写作要点
- 互联网发展靠创新 课件 2024-2025学年人教版(2024)初中信息科技七年级全一册
- 患者沟通技巧
- 广告伦理问题
- 十岁生日模板
- 期中检测卷(试题)-2024-2025学年北师大版五年级上册数学
- 北京盈科律师所管理制度
- 2024年宜宾人才限公司招聘高频难、易错点500题模拟试题附带答案详解
- 2024年国家国际发展合作署对外援助服务保障中心面向社会招聘工作人员6人历年高频难、易错点500题模拟试题附带答案详解
- 2024年江西省高考地理真题(解析版)
- 九宫数独200题(附答案全)
- 护士延续注册体检表
评论
0/150
提交评论