图像无法显示,因为它包含php gd中的错误

时间:2012-12-26 05:22:45

标签: php gd

这是Link我正在关注创建一个图像,但是我的GD已安装并正常工作,因为我测试了第一个示例,但此代码断开并标记" 图像可以不显示,因为它包含错误"

代码 -

<?php
//phpinfo();

//Report any errors
ini_set("display_errors", "1");
error_reporting(E_ALL); 

//Set the content type
header('content-type: image/png');

//Create our basic image stream 300x300 pixels
$image = imagecreate(300, 300);
//$image = imagecreatetruecolor(300, 300);
//Set up some colors, use a dark gray as the background color
$dark_grey = imagecolorallocate($image, 102, 102, 102);
$white = imagecolorallocate($image, 255, 255, 255);

//Set the path to our true type font 
//$font_path = 'advent_light';
//$font_path = 'advent_light.ttf';
//$font_path = 'arial';
$font_path = 'arial.ttf';

//Set our text string 
$string = 'Swapnesh!';

//Write our text to the existing image.
imagettftext($image, 50, 0, 10, 160, $white, $font_path, $string);

//Create our final image 
imagepng($image);

//Clear up memory 
imagedestroy($image);
?>

我试过并用Google搜索但没有解决方案的内容如下 - :(

  • 在php标记之前检查白色/空格(如果有)。
  • header()方法之前删除所有代码和空格。
  • imagecreate()更改为 imagecreatetruecolor(),如代码中的注释所示。
  • 检查font_path并根据评论设置字体路径。
  • 关注this&amp; this

我的PHP版本 - PHP版本5.3.8

仍无法找到问题:(

enter image description here

错误

Error

EDITS -

版本1.0

这就是我的拯救。

enter image description here

有关图片的更多信息 -

enter image description here

保存页面 - 这是文件保存的名称 - create_png.php.png

版本1.1

<br />
<b>Warning</b>:  imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Invalid font filename in <b>C:\xampp\htdocs\Core\CoreFiles\create_png.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>:  imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Invalid font filename in <b>C:\xampp\htdocs\Core\CoreFiles\create_png.php</b> on line <b>23</b><br />

感谢@cryptic@user1711126

解决方案 -

实际上缺少字体文件,我们需要将.ttf文件放在文件夹下以使此代码正常工作或设置路径使其工作。

3 个答案:

答案 0 :(得分:4)

保存图像文件中的错误并在文本编辑器(如记事本或等效文件)中打开它,看看是否有任何PHP错误。发生错误并输出文本然后破坏文件。这样做,你会发现错误是什么。

答案 1 :(得分:2)

我严重怀疑你的字体路径,请仔细检查你的字体和文件在同一目录中,如果是,那么改变这样的路径,

$font_path = './arial.ttf';

编辑(根据聊天中的讨论)

你必须要一个ttf文件才能使用imagettftext()函数将arial.ttf文件放在文件所在的文件夹中

答案 2 :(得分:2)

我认为@cryptic是对的,你需要使用类似

的字体使用的真实路径
$font_path = basename(dirname(__FILE__)).'/arial.ttf'; 

请确保目录中存在该字体。