zoukankan      html  css  js  c++  java
  • php图形图像处理之生成验证码

    (^o^)/~

    现在网上越来越离不开验证码了,不知道小伙伴们知不知利用php的GD库就可以生成验证码,Σ(⊙▽⊙"a ......

    首先介绍几个需要用的函数。

    1.imagesetpixel()

    这个函数可以进行像素点的绘制,在验证码中,我们称之为“噪点”,简直是一个神器。不知道小伙伴有没有想起来验证码上的点点呢,就是用这个函数生成的。

    2.str_shuffle()

    利用这个打乱字符串,然后利用substr()截取给定的位数,就可以生成一个随机字符串啦。

    实例:

     1 <?php
     2 
     3 $img = imagecreatetruecolor(100, 50);
     4 $black = imagecolorallocate($img, 0x00, 0x00, 0x00);
     5 $green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
     6 $white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
     7 imagefill($img, 0, 0, $white);
     8 //生成随机的验证码
     9 $code = make(5);
    10 imagestring($img, 5, 10, 10, $code, $black);
    11 //加入噪点干扰
    12 for ($i = 0; $i < 300; $i++) {
    13     imagesetpixel($img, rand(0, 100), rand(0, 100), $black);
    14     imagesetpixel($img, rand(0, 100), rand(0, 100), $green);
    15 }
    16 //加入线段干扰
    17 for ($n = 0; $n <= 1; $n++) {
    18     imageline($img, 0, rand(0, 40), 100, rand(0, 40), $black);
    19     imageline($img, 0, rand(0, 40), 100, rand(0, 40), $white);
    20 }
    21 //输出验证码
    22 header("content-type: image/png");
    23 imagepng($img);
    24 //销毁图片
    25 imagedestroy($img);
    26 //生产随机验证码的函数
    27 function make($length)
    28 {
    29     $code = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    30     return substr(str_shuffle($code), 0, $length);
    31 }

    效果:

                     

  • 相关阅读:
    React生命周期, 兄弟组件之间通信
    React组件式编程Demo-用户的增删改查
    React之this.refs, 实现数据双向绑定
    CCF CSP 201812-4 数据中心
    CCF CSP 201812-4 数据中心
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    Codeforces 1245C Constanze's Machine
    Codeforces 1245C Constanze's Machine
    CCF CSP 201712-4 行车路线
  • 原文地址:https://www.cnblogs.com/yuxiuyan/p/5582128.html
Copyright © 2011-2022 走看看