美文网首页
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