【发布时间】:2012-12-21 08:14:34
【问题描述】:
我遇到了问题,我需要一些帮助。 我已经制作了一个使用 GD 库使用 PHP 创建图像的脚本,但问题是当我在 Firefox 上预览它时,它在 Firebug 中显示一个错误:“图像损坏或截断:localhost/my_scripts/images.php”。 注意:这不是 PHP 显示的错误,更像是来自浏览器的错误。
我已经多次检查我的代码的语法,我也尝试过其他 gd 函数,如 imagegif、imagettftext 等,但没有任何效果。这是我的代码:
//$image = @imagecreate(200, 20)or die("Cannot Initialize new GD image stream");
$image = imagecreate(200, 20);
$background = imagecolorallocate($image,0,0,0);
$foreground = imagecolorallocate($image,255,255,255);
imagestring($image,5,5,1,"This is a Test",$foreground);
header("Content-type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
GD 库已启用,我已经在 phpinfo() 中检查过,我还尝试在 Chrome 上预览它,看起来一样。任何想法我可能做错了什么或为什么会发生这种情况?我该如何解决这个错误??
【问题讨论】:
-
注释掉
header调用和imagejpeg,然后访问脚本。您是否看到任何错误或警告? -
如果我注释掉标头函数会显示类似以下的奇怪符号:����JFIF��>CREATOR: gd-jpeg v1.0(使用 IJG JPEG v62),默认质量��C $。 ' ",#(7),01444'9=82<.342 br>
-
这就是为什么你也需要注释掉
imagejpeg。浏览器抱怨图像损坏的最常见原因是由于 PHP 警告或图像数据发出的通知。消除标题和图像数据,很可能会出现警告和通知。 -
那些奇怪的字符是原始图像数据
-
如果您注释掉 header(),这些字符就会出现。这不是错误,您只需使用标头告诉浏览器此文件将成为图像
标签: php image gd broken-image