4

这是我创建图像所遵循的链接,但是当我使用第一个示例进行测试时,我的 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);
?>

我尝试并搜索但没有解决方案的事情如下- :(

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

我的 PHP 版本 - PHP 版本 5.3.8

仍然无法找到问题:(

在此处输入图像描述

错误

错误

编辑-

1.0版

这就是我正在保存的内容。

在此处输入图像描述

有关图像的更多信息-

在此处输入图像描述

保存页面时——这是文件保存的名称——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 文件放在文件夹下以使此代码工作或设置路径以使其工作。

4

3 回答 3

4

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

于 2012-12-26T05:27:10.780 回答
2

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

$font_path = './arial.ttf';

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

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

于 2012-12-26T05:53:02.013 回答
2

我认为@cryptic 是正确的,您需要使用真实路径来使用字体,例如

$font_path = basename(dirname(__FILE__)).'/arial.ttf'; 

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

于 2012-12-26T06:00:26.413 回答