为什么这个PHP代码没有生成有效的PNG图像?

时间:2008-12-18 16:37:00

标签: php gd

$c = $record['corrects'];
$i = $record['incorrects'];

if($c == 0 && $i == 0)
{
    $image = imagecreatetruecolor(200,80);

    $white = imagecolorallocate($image,255,255,255);
    $red = imagecolorallocate($image,255,0,0);

    imagefilledrectangle($image,0,0,199,79,$white);

    $text = 'Quiz cancelled!';

    $box = imageftbbox(10,0,'verdana.ttf',$text);

    $x = imagesx($image)/2 - abs($box[2] - $box[0])/2 - 5;

    $y = imagesy($image)/2 - abs($box[5] - $box[3])/2 - 5;

    imagefttext($image,10,0,$x,$y,$red,'verdana.ttf',$text);

    header('Content-type: image/png');

    imagepng($image);
    imagedestroy($image);

    exit();
}

3 个答案:

答案 0 :(得分:2)

注释掉imagepng()和header()调用并在浏览器中查看输出以查看是否有任何错误生成

答案 1 :(得分:1)

我试过了,它有效。它产生了一段红色文字,说“测验被取消!”。

也许你应该检查$ c和$ i是否都是0?

我认为你有< ? PHP和? >文件开头和结尾的标签?

编辑:另外,ttf字体文件是否在正确的位置?

如果您可以提供更多信息,也可能有所帮助:浏览器是否出错?或者只是没有展示什么?

答案 2 :(得分:1)

如前所述,问题在细节上有点粗略。

GDFONTPATH环境变量是否设置正确?

<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

(来自uk.php.net/imagefttext