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") 字体文件