算数 图形验证码

 

1.

<div class="w25">
                   <img src="" alt="" class="w100 get_code">
               </div>
 $('.get_code').attr('src',laravel_api+'send_img_code')
    $('.get_code').click(function(){
        $(this).attr('src',laravel_api+'send_img_code?id='+Math.random(0,99))
    })

Route::get('api/send_img_code', 'Api\SmsController@sendImgCode'); //发送验证码

 

 public function sendImgCode()
    {
        $width=120;
        $height=50;
        $fontSize=20;
        //创建画布
        $img = imagecreatetruecolor($width,$height);
        //分配颜色
        $color = imagecolorallocate($img,255,255,255);
        //填充颜色
        imagefill($img,0,0,$color);
        //干扰点
        for ($i = 0;$i < 500;$i++){
            $pixColor = imagecolorallocate($img,mt_rand(100,200),mt_rand(100,200),mt_rand(100,200));
            imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),$pixColor);
        }
        //干扰线
        for ($i = 0;$i < 4;$i++){
            $lineColor = imagecolorallocate($img,mt_rand(0,120),mt_rand(0,120),mt_rand(0,120));
            imageline($img,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),$lineColor);
        }
        $num1 = mt_rand(1,9);
        $num2 = mt_rand(1,9);
        session(['img_code'=> strval($num1+$num2)]);    
        $str =  $num1.'+'.$num2.'=';
        $textColor = imagecolorallocate($img,mt_rand(100,200),mt_rand(100,200),mt_rand(100,200));
        $fontAngle = 0;
        $x = ($width - $fontSize*3)/2;
        $y = ($height - $fontSize) / 2 + $fontSize;
        // echo 111;
        // ob_end_clean();
        imagettftext($img,$fontSize,$fontAngle,$x,$y,$textColor,public_path("img/msyh.ttc"),$str);
        header("content-type:image/png");
        imagepng($img);
    }

其中public_path("img/msyh.ttc")  字体文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值