PHP图像生成器失败没有任何典型的原因

时间:2014-08-09 16:32:28

标签: php apache ubuntu gd mime-types

我有一个PHP文件,可生成指定大小的图像以供测试。我猜浏览器认为脚本的输出是text / html。到目前为止,我已经安装了php5-gd并将我的php文件保存为UTF-8而没有BOM,但我仍然有问题。使用readfile()将现有图像发送到浏览器可以正常工作。

我的PHP图像生成器:

header('Content-Type: image/jpeg');
$im = null;
$width = 400;
$height = 300;
if (isset($_GET['w']) && isset($_GET['h'])) {
    if (is_numeric($_GET['w']) && is_numeric($_GET['h'])) {
        $width = $_GET['w'];
        $height = $_GET['h'];
    }
}
$im = imagecreatetruecolor($width,$height);
$bg = imagecolorallocate($im, 255, 255, 255);
$orange = imagecolorallocate($im, 220, 210, 60);
imagestring($im, 3, 5, 5,  'TEST IMAGE', $orange);
imagejpeg($im);
imagedestroy($im);

来自PHP.net的示例代码也不起作用:

// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);

使用readfile()方法:

header('Content-Type: image/jpeg');
readfile('./site_top/1.jpg');

更新:PEBKAC错误。 在安装gd时,我看到Apache服务器在此过程中重新启动,所以我没想到要自己重启它。原来我需要第二次重启Apache才能使安装正常工作。

1 个答案:

答案 0 :(得分:1)

只需复制并粘贴您的代码,工作正常,如imagejpeg()函数的PHP页面所示:

  

注意: JPEG支持仅在编译PHP时可用   GD-1.8或更高版本。

确保您的PHP至少具有GD-1.8。

根据以下代码显示的图片:

Working Image