PHP图像处理技术应用-验证码的使用

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、注册、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试

 封装验证码类
(1)封装一个验证码类,先实现能够随机生成不同颜色的背景
PHP图像处理技术应用-验证码的使用
PHP图像处理技术应用-验证码的使用
(2)在生成的图片上面随机的产生文字(字母、数字)
<由于随机生成字符的代码肯定会很多,所以我们将生成字符的代码封装到函数中 PHP图像处理技术应用-验证码的使用
(3)把随机生成的字符写入到画布中
使用imagettftext()写入,因为可以指定字体文件
<如何实现让每个字符所在的位置不一样,倾斜的角度也不一样? 思路:遍历这4个字符,指定每一个字符的位置、倾斜的角度

//开始绘制验证码
    public function makeImage()
    {
        //1. 创建画布,背景颜色应该是随机产生的,尽量背景颜色浅一点
        $image = imagecreatetruecolor($this->width, $this->height);
        //2. 分配颜色       
        $color = imagecolorallocate($image, mt_rand(100,255), 
mt_rand(100,255), mt_rand(100,255));
        imagefill($image, 0, 0, $color);
       
        //3. 开始绘制文字
        $code = $this->makeCode();
        for($i=0;$ifont_size, mt_rand(-30,30), 
($this->width/$this->number)*$i+5, 20, mt_rand(0,100), 
$this->font_file, $code[$i]); 
        }       
        //绘制100个干扰像素点
        for($i=0;$i<100;$i++){
            imagesetpixel($image, mt_rand(0,$this->width), 
mt_rand(0,$this->height), 
mt_rand(0,100));
        }
       
        //练习:绘制10条干扰线条
       
        //3. 输出到浏览器
        header("Content-Type:image/png");
        imagepng($image);
        //4. 销毁图像资源
        imagedestroy($image);
    }

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/9910.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2018年9月3日 10:00
下一篇 2018年9月7日 00:00

相关推荐

  • PHP入门指南:协程。

    随着互联网的不断发展和高并发场景的增多,PHP作为一种高性能、易于学习和使用的语言,受到了越来越多的关注和运用。PHP的协程技术是其高并发处理的重要利器之一,本文将为大家介绍PHP协程的基本概念、实现原理和应…

    2023年5月23日
    04
  • PHP与数据流处理的集成。

    随着数据处理需求不断升级,以及大数据应用的普及,数据流处理技术在近年来得到了广泛的应用。数据流处理技术的目的是在数据流中实时处理数据,以及在处理过程中同时产生新的数据流结果。PHP是一种非常流行的Web编…

    2023年5月21日
    04
  • 第一个PHP程序与开发工具的选择

    理论上PHP代码可以通过类似于<?php  /*php代码*/  ?>嵌入到HTML的任何位置。 定界符 修改PHP5环境包中配置文件可以修改定界符。 php的配置文件在PHP环境包下为php.ini   (initval初始化) short_open_tag = On…

    2018年4月4日
    0374
  • ThinkPHP5的方法和3.2的方法对比

    ThinkPHP5的方法和3.2的方法对比 助手函数 描述 cache 缓存管理(相当于3.2中的S方法) class_basename 获取类名(不包含命名空间) config 获取和设置配置参数(相当于3.2中的C方法) controller 实例化控制器(相当于3.2…

    2018年5月7日
    0187
  • 关于php图像处理技术的小结

    图像压缩:imagecopyresampled 图片在指定范围内压缩: 1000*800        50*50               比例==20,宽的部分压缩的比例 800*1000      50*50                  比例==20,高度部分压缩的比例   兼容主流…

    2018年9月11日
    0398
  • 重蔚自留地php学习第四十一天——http协议传输教程

    回顾 PHP操作mysql 开启mysql扩展 PHP如何操作mysql 连接认证 SQL操作(PHP是准备和发送SQL以及接受SQL执行结果,mysql服务器执行SQL) 断开连接(释放内存资源,mysql回收连接资源) 分页 通过limit:limit offset…

    2018年12月22日 我php路线
    0431
  • PHP入门指南:表单处理。

    PHP是一种十分常见的服务器端编程语言,其应用广泛,尤其在Web开发中被广泛采用。通过使用PHP,我们可以访问数据库、创建动态页面、从表单中收集数据等。本篇文章将介绍如何使用PHP处理表单。前置知识在开始学习PHP…

    2023年5月22日
    06
  • PHP调用华为云短信接口实现短信发送。

    随着智能手机的流行,短信已经成为了人们生活中必不可少的一部分。不论是商业还是个人用途,短信都是一种重要的沟通方式。华为云是一家领先的云计算服务提供商,为了满足用户需求,华为云提供了短信服务。在这篇文…

    2023年5月30日
    05

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息