中易网

php文件可以输出图片却无法显示出来!

答案:2  悬赏:40  
解决时间 2021-01-11 12:17
  • 提问者网友:你给我的爱
  • 2021-01-10 19:46
php文件可以输出图片却无法显示出来!
最佳答案
  • 二级知识专家网友:琴狂剑也妄
  • 2021-01-10 21:24
经测试2种方式都可以正确显示,据估计,你的第2种方式不能正常显示的原因在于:


你在第2种方式里,除了 img 输出外,还有其它输出。


请参看下面的示例代码:
// 创建新的图像实例
$im = imagecreatetruecolor(100, 100);
// 设置背景为白色
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);
//在图像上写字
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);

//echo "这一行如果加上就不能正常显示下面的图像了。
";

// 输出图像到浏览器
header('Content-Type: image/gif');
imagegif($im);

imagedestroy($im);
?> 
为什么第 2 种方式,不能在header前面有内容,究其原因,请参看以下说明:


header()必须在任何实际输出之前调用,不管是普通的html标签,还是文件里面的空行、空格或者是PHP文件里的空行、空格。


简单一句话:在header()被调用之前有输出就会出错。
追问是不是哪里设置出的问题。我用这个代码都不能显示
header ("content-type:image/png" );
$img=imagecreatetruecolor(100,30);
imagepng($img);
imagedestroy($img);
?>追答$img=imagecreatetruecolor(100,30); 这句代码只建立了图像,但图像并没有任何内容。追问建立的图片是默认黑色的,我在教程网站上面能显示,

在我自己的电脑就不能显示。

如果用
imagegif($image,'verify.php');
echo ;
就可以显示
追答代码在我的电脑上也能正确显示。


据此猜测:


1、浏览器显示问题。


2、PHP函数库支持(如果imagegif能正常显示的话)。这个问题你可以用 imagetypes()  或 function_exists 函数检测下。
if(imagetypes() & IMG_PNG)
if(function_exists('imagepng'))追问。。结果都是TRUE。
全部回答
  • 1楼网友:上分大魔王
  • 2021-01-10 21:53
把header语句去掉看输出什么追问
显示乱码
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息