美文网首页
验证码图形

验证码图形

作者: 王玉伟的伟 | 来源:发表于2019-12-12 22:56 被阅读0次
    <?php
    /*===实例:创建图像验证码===*/
    /*(1)产生随机4位字符串*/
    $arr = array_merge(range('A','Z'),range('0','9'),range('a','z'));
    //打乱数组
    shuffle($arr);
    //从数组中随机取4位下标
    $arrSub = array_rand($arr,4);
    //循环数组,取出指定下标对应元素的值
    $strRand = '';
    foreach ($arrSub as $value) {
        $strRand .= $arr[$value];
    }
    /*(2)分配颜色:背景色、文字颜色*/
    $width = 120;
    $height = 40;
    $img = imagecreatetruecolor($width,$height);
    $colorOne = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
    $colorTwo = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
    $colorThree = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
    /*(3)创建一个空的画布,绘制带填充的矩形*/
    imagefilledrectangle($img,0,0,$width,$height,$colorOne);
    /*(4)往图像上写入TTF字体串:imagettftext()*/
    imagettftext($img,28,0,16,32,$colorTwo,'./shsht.ttf',$strRand);
    /*(5)绘制像素点*/
    for ($i=0; $i < 200; $i++) { 
        imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),$colorThree);
    }
    /*(6)输出图像,并销毁图像*/
    header("Content-type:image/png");
    imagepng($img);
    imagedestroy($img);
    
    图片1.png 图片2.png 图片3.png
    往图像上写入一行汉字
    例如:
    <?php
    //创建一个空画布
    $img = imagecreatetruecolor(400,100);
    //分配颜色
    $colorOne = imagecolorallocate($img,0,0,0);//黑色
    $colorTwo = imagecolorallocate($img,255,0,0);//红色
    //填充背景色
    imagefill($img,0,0,$colorOne);
    //往图像上写入一行TTF字体的文字(可以是汉字)
    $str = '你好啊';
    imagettftext($img,28,0,30,60,$colorTwo,'./shsht.ttf',$str);
    //输出图像到浏览器
    header("Content-type:image/png");
    imagepng($img);
    //销毁图像资源
    imagedestroy($img);
    
    图片4.png

    相关文章

      网友评论

          本文标题:验证码图形

          本文链接:https://www.haomeiwen.com/subject/yiizgctx.html