什么';我的php生成的png文件有什么问题?
我想从我最近观看的PHP动画中制作一个独特的论坛签名。这些都包含在RSS提要中。在我的本地apache服务器上,图像生成得很好,但当我将其上传到服务器上时,出现了一个错误,根本没有生成图像 这是我的代码,我想知道问题出在哪里,因为Dreamweaver CS5或phpDesigner 7都没有显示任何错误,尽管如果我在phpDesigner中按Run按钮,我会得到一个错误,但我不知道这意味着什么。错误如下: 第6行-致命错误:调用[php的路径]中未定义的函数imagecreatefrompng() 因此,代码如下所示:什么';我的php生成的png文件有什么问题?,php,image,Php,Image,我想从我最近观看的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(…)
的开头放一个@字符,因为可能会发生这样的情况:你加载了一个不好的转换图像,然后你会收到一条错误消息,这是导致图像无法显示的原因