最新最全PHP生成制作验证码代码详解(推荐),验证码详解

1.0  首先先看代码

好,现在结合以上代码,来分析分析以上用到的几个函数:

①  imagecreatetruecolor();

imagecreatetruecolor — 新建一个真彩色图像(感觉哇,那么长,其实仔细一看挺好记的 image/create/true/color,什么是真彩色图像?往下看)

resource imagecreatetruecolor ( int $width , int $height )

imagecreatetruecolor() 和 imagecreate()两个函数都能创建画布

resource imagecreate ( int $x_size , int $y_size )

imagecreatetruecolor()建立的是一幅大小为 x和 y的黑色图像(默认为黑色[即便叫法就是真彩色图像]),如想改变背景颜色则需

要用填充颜色函数 imagefill($img,0,0,$color);

imagecreate 新建一个空白图像资源,用imagecolorAllocate()添加背景色

上面两个函数只不过是一个功能的两种方法

②  imagecolorallocate();

imagecolorallocate — 为一幅图像分配颜色

int imagecolorallocate ( resource $image , int $red , int $green , int $blue )

颜色分别用 红 绿 蓝三色组合,这些参数是 0 到 255 的整数或者十六进制的 0x00 到 0xFF。

③  mt_rand();

mt_rand — 生成更好的随机数

int mt_rand ( int $min , int $max )

$min 可选的、返回的最小值(默认:0)  $max 可选的、返回的最大值(默认:mt_getrandmax())

这里就是用来让他随机生成背景颜色,0-255随便取值。所以页面没刷新一次画布背景颜色就不一样。效果图:

2.0  开始往里面做干扰线,干扰点。防止验证图像被秒识别

函数分析:

①  imageline();

imageline — 画一条线段

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imageline() 用 color 颜色在图像 image 中从坐标 x1,y1 到 x2,y2(图像左上角为 0, 0)画一条线段。

imageline($img, mt_rand(0,150), mt_rand(0,50), mt_rand(0,150), mt_rand(0,50), $linecolor);这里意思就是 画布$img 中从坐标 x1,y1 到 x2,y2随机

②  imagesetpixel();

imagesetpixel— 画一个单一像素

bool imagesetpixel ( resource $image , int $x , int $y , int $color )

imagesetpixel() 在 image 图像中用 color 颜色在 x,y 坐标(图像左上角为 0,0)上画一个点。

imagesetpixel($img, mt_rand(0,150), mt_rand(0,60), $dotcolor);具体含义同上

效果图:

3.0  添加验证字母数字

函数:

imagettftext();

imagettftext — 用 TrueType 字体向图像写入文本

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

分析下面的代码:

imagettftext($img, 25, mt_rand(-15,15), $x_start, 50/2, $fontcolor, "C:/Windows/Fonts/Verdana.TTF", $key);

$img-----------画布

25-----------字体的尺寸。

mt_rand(-15,15)----------角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。(就是字体角度的问题,)

$x_start----------通俗易懂的讲就是字符的X轴位置

50/2----------字符的高度

$fontcolor----------字符颜色

"C:/Windows/Fonts/Verdana.TTF"----------字符的字体样式路径

$key-----------遍历出后的字符

效果:

以上内容是本文给大家介绍的最新最全PHP生成制作验证码代码详解(推荐)的全部叙述,希望对大家有所帮助!

http://www.bkjia.com/PHPjc/1136666.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1136666.htmlTechArticle最新最全PHP生成制作验证码代码详解(推荐),验证码详解 1.0 首先先看代码 phpheader("Content-Type:text/html;Charset=UTF-");// 设置页面的编码风格hea...

php推荐码生成,最新最全PHP生成制作验证码代码详解(推荐),验证码详解_PHP教程...相关推荐

  1. 影集制作php源码_2018最新仿720全景在线制作云平台网站PHP源码(新增微信支付+打赏+场景红包+本地存储)...

    源码介绍 最新仿720全景在线制作云平台网站|720云全景系统源码|全景在线制作网站源码是一款基于php+mysql开发制作的全景在线制作网站源码,包含全景图片,全景视频等.数据存储全部存于OSS云端 ...

  2. python电玩城源码_2019最新最全价值2W的微信H5电玩城游戏全套源码+架设教程+配置文档...

    2019最新最全价值2W的微信H5电玩城游戏全套源码+架设教程+配置文档由小鱼H5游戏源码精心整理,并分享给大家.喜欢该资源的小伙伴请下载使用,注册.回复.每日签到.点赞送大量积分,满足您免费下载的愿 ...

  3. js解析二维码_最新最全阿里巴巴,今日头条,腾讯Flutter面试真题全解析(狂虐不止)...

    阿里巴巴,今日头条,腾讯Flutter面试真题全解析.你只有去过大厂,才知道大厂的面试有多难,这个难度不是你能够想象得到的.所以说如果想去做这方面的工作,建议把以下内容好好准备一下(其实也就是多看一些 ...

  4. AAA云免费云主机推荐码

    AAA云免费云主机推荐码(有效期:2017年05月06日): AAAYUN0005SC5HQRS66-20170506 免费云主机申请地址: http://www.aaayun.com/ 由成都创云信 ...

  5. 互利【思源笔记】订阅码推荐码

    ** 1.更新2022.4.16 晚19:21 ** 2.我的推荐码:IdBAFtf 3.小伙伴的推荐码: DO501KC 9sSgg9I 4.交换规则 首先,请使用上面的推荐码,如:IdBAFtf ...

  6. 阿里云推荐码(wzrd94)

    我有一个阿里云9折推荐码:wzrd94,分享给你,第一次购买云服务器或云数据库可享受原价9折优惠,还可多人使用,拿走不谢. 欢迎使用! 1分享推荐码给好友,好友帐号下无运行中的ECS.RDS.弹性we ...

  7. html获取随机字母,html5 canvas随机生成英文字母数字组合图片验证码代码

    简单又实用的html5 canvas随机生成英文字母数字组合图片验证码代码,点击验证码图片可更换一组,还可随意修改验证码的内容,样式. 查看演示 下载资源: 27 次 下载资源 下载积分: 20 积分 ...

  8. 图像卡通化生成(Image Cartoonization):最新最全19篇汇总

    点击上方"摸鱼吧算法工程师"卡片,关注星标 获取有趣.好玩的前沿干货! 最新最全100篇汇总!生成扩散模型Diffusion Models 001  (2022-08-2) Lea ...

  9. 最新 ICCV | 35个GAN应用主题梳理,最全GAN生成对抗论文汇总

     戳我,查看GAN的系列专辑~! 在最新的视觉顶会ICCV 2021会议中,涌现出了大量基于生成对抗网络GAN的论文,广泛应用于各类视觉任务:本文在此做尽可能的梳理汇总! 下述论文已分类打包好!后台回 ...

最新文章

  1. linux 内核参数调整说明
  2. 更换group.id时kafka从哪开始消费
  3. 代码执行流水之循环展开优化
  4. Linux下几款C++程序中的内存泄露检查工具
  5. 很朴素的学习嵌入式系统的经验
  6. python之路day4_python之路day4
  7. linux从源码编译软件,linux软件源码的编译安装
  8. .NET开发 程序员必备工具 -- Regulator:生成正则表达式工具
  9. ubuntu无法登陆mysql_ubuntu11.04mysql报错、无法正常工作、无法登陆mysql
  10. ALGO-146_蓝桥杯_算法训练_4-2找公倍数
  11. Java 实现插入排序算法
  12. 测试工具apipost postman jmeter
  13. 如何保留5个有效数字输出c不4舍5入_好吃好喝不发胖,这样过年才健康团
  14. 2021年茶艺师(中级)考试内容及茶艺师(中级)操作证考试
  15. 2018年大连海事大学校赛(ACM竞赛高校联盟训练赛 第11场)题解
  16. 全球及中国抗体药物市场展望规划及专项深度调研报告2021-2027年
  17. 中国历史上的著名武将有哪些?
  18. 南部一名女子欲跳江轻生,已经被成功营救
  19. 基于SSM的高校课程评价系统
  20. 零基础想要学习前端,却无从下手?其实你就差一套这样的web前端学习路线

热门文章

  1. Faster R-CNN 英文论文翻译笔记
  2. Linux版本划分——基于打包方式
  3. 【quartus】原理图输入设计详解攻略
  4. 用哈希桶实现错位字组的分类(Group Anagrams)
  5. 一份关于kaggle特征构建技巧和心得 1
  6. Kotlin 继续助力 Android 开发,并计划涉足更多领域
  7. [微信小程序直播平台开发]___(一)介绍与流程
  8. python 识别验证码
  9. 阿里云将增设马来西亚数据中心 中国技术获赞
  10. [翻译]现代Linux系统上的栈溢出攻击【转】