php不能生成图片如何解决

这篇文章主要介绍“php不能生成图片如何解决”,在日常操作中,相信很多人在php不能生成图片如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php不能生成图片如何解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
解决办法
1、打开gd2库,通过phpinfo进行查看。清除bom,代码是顶行开始写的,所以问题可能出现在代码上。
2、在header前加上ob_clean()语句,随后就可以运行了。
注意点
生成图片时,header('Content-type: image/png');前面不能有输出。或者,前面加:ob_clean(); 即使用输出也可以通过这句来清除输出缓存。
解决实例
//设置验证码高度宽度\上面字符个数$img_w=70;$img_h=22;$font=5;$char_len=5;//数组合并,range()函数返回一个范围数组$char=array_merge(range('a','z'),range('A','Z'),range('1','9'));$rand_keys=array_rand($char,$char_len);//随机从数组中取指定个数的元素,生成键值if($char_len==1){//若只有一个数,则array_rand()返回非数组类型$rand_keys=array($rand_keys);}shuffle($rand_keys);//可以不用$code='';foreach($rand_keysas$k){$code.=$char[$k];}session_start();$_SESSION['captcha']=$code;//添加线、色//创建新图像$img=imagecreatetruecolor($img_w,$img_h);//分配颜色$bg_color=imagecolorallocate($img,0xcc,0xcc,0xcc);//画布背景色imagefill($img,0,0,$bg_color);//干扰线for($i=0;$i<300;++$i){$color=imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));imagesetpixel($img,mt_rand(0,$img_w),mt_rand(0,$img_h),$color);}for($i=0;$i<=10;++$i){//设置直线颜色$color=imageColorAllocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));//在$img图像上随机画一条直线imageline($img,mt_rand(0,$img_w),mt_rand(0,$img_h),mt_rand(0,$img_w),mt_rand(0,$img_h),$color);//imagesetpixel($img,mt_rand(0,$img_w),mt_rand(0,$img_h),$color);}//加加框$rect_color=imagecolorallocate($img,0x90,0x90,0x90);imagerectangle($img,0,0,$img_w-1,$img_h-1,$rect_color);$str_color=imagecolorallocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));$font_w=imagefontwidth($font);$font_h=imagefontheight($font);$str_len=$font_w*$char_len;imagestring($img,$font,($img_w-$str_len)/2,($img_h-$font_h)/2,$code,$str_color);
到此,关于“php不能生成图片如何解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!