什么';我的php生成的png文件有什么问题?

什么';我的php生成的png文件有什么问题?,php,image,Php,Image,我想从我最近观看的PHP动画中制作一个独特的论坛签名。这些都包含在RSS提要中。在我的本地apache服务器上,图像生成得很好,但当我将其上传到服务器上时,出现了一个错误,根本没有生成图像 这是我的代码,我想知道问题出在哪里,因为Dreamweaver CS5或phpDesigner 7都没有显示任何错误,尽管如果我在phpDesigner中按Run按钮,我会得到一个错误,但我不知道这意味着什么。错误如下: 第6行-致命错误:调用[php的路径]中未定义的函数imagecreatefrompng

我想从我最近观看的PHP动画中制作一个独特的论坛签名。这些都包含在RSS提要中。在我的本地apache服务器上,图像生成得很好,但当我将其上传到服务器上时,出现了一个错误,根本没有生成图像

这是我的代码,我想知道问题出在哪里,因为Dreamweaver CS5或phpDesigner 7都没有显示任何错误,尽管如果我在phpDesigner中按Run按钮,我会得到一个错误,但我不知道这意味着什么。错误如下:

第6行-致命错误:调用[php的路径]中未定义的函数imagecreatefrompng()

因此,代码如下所示:

<?php
    // title & description arrays
    $titleCuts = array();
    $descCuts = array();
    // bg image
    $bgimg = imagecreatefrompng('sig_robin.png');
    // colors 
    $white = imagecolorallocate($bgimg, 255, 255, 255);
    $textColor = imagecolorallocate($bgimg, 245, 193, 9);
    $shapeColor = imagecolorallocate($bgimg, 27, 20, 0);

    // sxe <- xml url
    $sxe = new SimpleXMLElement('http://myanimelist.net/rss.php?type=rw&u=fema', NULL, TRUE);

    // shape
    imagefilledrectangle($bgimg, 255, 20, 567, 279, $shapeColor);

    // TEXTS
    imagettftext($bgimg, 20, 0, 263, 52, $white, "my.ttf", "Latest Watched:");
    // episodes' text
    for($i=0;$i<5;$i++) 
    {
        // title cut and joint
        $titleCuts = explode(' ', $sxe->channel->item[$i]->title, -2);
        $titleCut = implode(' ',$titleCuts);
        // description (ep) cut and joint
        $descCuts = explode(' ', $sxe->channel->item[$i]->description);
        // output
        imagettftext($bgimg, 10, 0, 270, 77+($i*45), $textColor, "my.ttf", $titleCut);
        imagettftext($bgimg, 10, 0, 270+(strlen($titleCut)*7.2), 92+($i*45), $textColor, "my.ttf", "ep. ".$descCuts[2]);
    }

    header('Content-type: image/png');    
    // generating image
    imagepng($bgimg);
?>

这意味着GD要么没有编译成PHP,要么还没有加载。首先,检查您的php.ini,您可以使用
extension=php_gd2.dll的
phpinfo()
找到它的路径,并确保它没有用分号注释掉。更改设置后,重新启动Web服务器,然后再次查看
phpinfo()
,查看是否加载了GD

要使用此函数(
imagecreatefrompng
),您的php需要安装GD扩展(有关更多信息,请参阅)

要检查什么是/不是安装,请在本地服务器上创建一个php文件,只需执行以下操作:

然后将映像(GD)部分与服务器上运行的同一文件进行比较


请注意,如果您在共享主机服务器上,您可能必须联系他们的管理员为您安装/配置此功能。

如果未定义
imagecreatefrompng
,则GD库很可能未安装或损坏,请参阅:


不要因为“您必须配置和重建PHP”而惊慌,通常操作系统的软件包管理器可以通过安装额外的软件包轻松添加GD支持。

好的,第二个问题的解决方案是它是一个PHP错误

但它很容易通过以下方式解决:

在每个*.ttf文件之前放置一个
/
,如以下示例所示:

imagettftext(IMAGE, 0, 0, 0, 0, TEXT_COLOR, "./ttf_file.ttf", TEXT);

该死…我不认为这是问题所在,但现在问题已经解决了。:哦,谢谢!不客气。我要做的另一件事是,在
@imagecreatefrompng(…)
的开头放一个@字符,因为可能会发生这样的情况:你加载了一个不好的转换图像,然后你会收到一条错误消息,这是导致图像无法显示的原因