千家信息网

如何解决php imagepng输出不了的问题

发表于:2024-10-08 作者:千家信息网编辑
千家信息网最后更新 2024年10月08日,如何解决php imagepng输出不了的问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。php imagepng输出不了的解决办法:
千家信息网最后更新 2024年10月08日如何解决php imagepng输出不了的问题

如何解决php imagepng输出不了的问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

php imagepng输出不了的解决办法:1、将所在文件存储为无BOM格式;2、定义header,并清空缓存区,代码如"header ('Content-Type: image/png');"。

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

php imagepng输出不了怎么办?

PHP ImagePng()在浏览器输出图片不能显示的问题

拿随机生成验证码的代码为例,想要成功输出图片至浏览器必须注意两项:

private function captcha(){                ob_clean();                session_start();                                header ('Content-Type: image/png');                $image=imagecreatetruecolor(100, 30);//背景颜色为白色                $color=imagecolorallocate($image, 255, 255, 255);                imagefill($image, 20, 20, $color);                $code='';                for($i=0;$i<4;$i++){                    $fontSize=8;                    $x=rand(5,10)+$i*100/4;                    $y=rand(5, 15);                    $data='ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789';                    $string=substr($data,rand(0, strlen($data)),1);                    $code.=$string;                    $color=imagecolorallocate($image,rand(0,120), rand(0,120), rand(0,120));                    imagestring($image, $fontSize, $x, $y, $string, $color);                }                $_SESSION['code']=$code;//存储在session里                for($i=0;$i<200;$i++){                    $pointColor=imagecolorallocate($image, rand(100, 255), rand(100, 255), rand(100, 255));                    imagesetpixel($image, rand(0, 100), rand(0, 30), $pointColor);                }                for($i=0;$i<2;$i++){                    $linePoint=imagecolorallocate($image, rand(150, 255), rand(150, 255), rand(150, 255));                    imageline($image, rand(10, 50), rand(10, 20), rand(80,90), rand(15, 25), $linePoint);                }                imagepng($image);                imagedestroy($image);        }

(1)将所在文件存储为无BOM格式

(2)定义header,并清空缓存区

header ('Content-Type: image/png');ob_clean();

看完上述内容,你们掌握如何解决php imagepng输出不了的问题的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0