zoukankan      html  css  js  c++  java
  • PHP生成验证码图片

    //生成验证码图片注释

    <?php

    session_start();

    $arr = array(
    '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','0','1','2','3','4','5','6','7','8','9'
    );

    $rand = "";
    for($i=1;$i<=4; $i++){
    $rand .= $arr[rand(0,count($arr)-1)];
    }

    $_SESSION['check_pic'] = $rand;

    //生成图片
    $im = imagecreatetruecolor(100,30);

    //生成颜色,当第一次调用生成颜色的方法,是生成背景颜色,默认是黑色
    //如果想自定义背景颜色,用到imagefill函数
    $bg = imagecolorallocate($im,200,200,200);
    imagefill($im,0,0,$bg);

    //第二次调用这个方法,是可以生成图片上面的文字或其他样式的颜色
    $te = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));

    $te2 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));

    //生成干扰线,就是画线
    $posLineX1 = rand(6,30);
    $posLineX2 = rand(30,60);
    for($i=0;$i<5;$i++){
    $posLinY1=rand(2,10);
    $posLinY2=rand(11,28);
    imageline($im,$posLineX1,$posLinY1,$posLineX2,$posLinY2,$te2);
    $posLineX1 += rand(30,60);
    $posLineX2 += rand(61,98);
    }

    //干扰点

    for($i=0;$i<90;$i++){
    $te3 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($im,rand(2,100),rand(2,30),$te3);
    }


    //在图片上面生成文字
    //imagestring($im,5,rand(3,70),rand(3,15),$rand,$te);

    $posX = rand(6,45);
    for($i=0;$i<4;$i++){
    $posY = rand(2,15);
    imagestring($im,rand(2,5),$posX,$posY,substr($rand,$i,1),$te);
    $posX += rand(8,20);
    }

    //要把php当成图片输出,必须给文件一个头申明

    ob_clean 只是清空当前缓冲区的数据

    ob_clean();


    header("Content-type:image/jpeg");
    //最终生成图片
    imagejpeg($im);

    ?>

  • 相关阅读:
    IntelliJ IDEA 使用总结[zz]
    “vmware tools 只能虚拟机中安装”的解决方法
    Git 少用 Pull 多用 Fetch 和 Merge
    hypervisor与VMware共存方法
    rsa && sha1 js code
    PHP导出数据库方法
    Git中的AutoCRLF与SafeCRLF换行符问题
    DOTA2参数收集
    HelloGitHub.com 网站开源了
    第 10 篇 评论接口
  • 原文地址:https://www.cnblogs.com/yanjialin/p/3728461.html
Copyright © 2011-2022 走看看