美文网首页
PHP 生成图片验证码

PHP 生成图片验证码

作者: 风度翩翩的程序猿 | 来源:发表于2022-03-08 15:32 被阅读0次
            $width = 0;
            $height = 0;
            $num = 4;
            $size = 20;
            !$width && $width = $num * $size * 4 / 5 + 15;
            !$height && $height = $size + 10;
    
            //保存获取的验证码
            $code = $this->getRandomString(6);
            //创建验证码画布
            $im = imagecreatetruecolor($width, $height);
            //背景色
            $back_color = imagecolorallocate($im, mt_rand(0, 100), mt_rand(0, 100), mt_rand(0, 100));
            //文本色
            $text_color = imagecolorallocate($im, mt_rand(100, 255), mt_rand(100, 255), mt_rand(100, 255));
            imagefilledrectangle($im, 0, 0, $width, $height, $back_color);
    
            // 画干扰线
            for ($i = 0; $i < 5; $i++) {
                $font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
                imagearc($im, mt_rand(-$width, $width), mt_rand(-$height, $height), mt_rand(30, $width * 2), mt_rand(20, $height * 2), mt_rand(0, 360), mt_rand(0, 360), $font_color);
            }
    
            // 画干扰点
            for ($i = 0; $i < 50; $i++) {
                $font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
                imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $font_color);
            }
            //随机旋转角度数组
            $array = array(5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5);
            // 输出验证码
            // imagefttext(image, size, angle, x, y, color, fontfile, text)
            imagefttext($im, $size, array_rand($array), 12, $size + 5, $text_color, './public/app/fonts/simsun.ttc', $code);
    
            header("Cache-Control: no-cache");
            header("Content-type: image/png;charset=gb2312");
            //将图片转化为png格式
            imagepng($im);
            imagedestroy($im);
    

    相关文章

      网友评论

          本文标题:PHP 生成图片验证码

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