PHP imagefttext(imagettftext)没有显示任何内容

时间:2010-09-25 17:51:28

标签: php gd imagettftext

我几乎肯定有一个愚蠢的原因,这不起作用,但我只是想不出这个。我只是试图用imagettftext将一些文本打印成图形,但是我无法显示这些文字。这是在GoDaddy服务器上,所以我不控制所有内容,但这里是phpinfo()的规范:

  • PHP版本5.2.14
  • - with-gd'' - with-freetype-dir = / usr'' - with-jpeg-dir = / usr'' - with-png-dir = / usr / bin / libpng-config '' - enable-gd-native-ttf'
  • 已启用GD支持
  • 捆绑的GD版本(2.0.34兼容)
  • 启用了FreeType支持
  • FreeType链接与freetype
  • FreeType版本2.2.1

这是我正在使用的代码。没什么好看或奇怪的。

$width = 270;
$height = 25;
$image = imageCreate($width, $height);
$white = imageColorAllocate($image, 255, 255, 255);
$black = imageColorAllocate($image, 0, 0, 0);
$font = 'verdana.ttf';
imagefttext($image, 16, 0, 0, 0, $black, $font, 'TESTING TEXT');
header("Content-type:  image/gif");
imageGIF($image);

我尝试过以不同的方式更改字体名称:

$font = './verdana.ttf';
$font = dirname(__FILE__).'/verdana.ttf';

我尝试过使用PNG代替GIF,我尝试过使用imagefttext()和imagettftext(),我尝试过显示错误,但它没有显示任何错误,只是一个空白的屏幕。有任何想法吗?它必须是如此愚蠢的东西......

3 个答案:

答案 0 :(得分:7)

我知道了(考虑到我是这方面的专家,这让我头疼了一段时间......)

错误是 Y位置必须具有字体大小 offeset 所以它应该看起来像这样

<?php
$width = 270;
$height = 25;
$image = imageCreate($width, $height);
$white = imageColorAllocate($image, 255, 255, 255);
$black = imageColorAllocate($image, 0, 0, 0);
$font = 'verdana.ttf';
imagettftext($image, 16, 0, 0, 16, $black, $font, 'TESTING TEXT');
header("Content-type:  image/gif");
imageGIF($image);
?>

答案 1 :(得分:1)

你拼写imagettftext错了吗?

答案 2 :(得分:1)

$font = "verdana.ttf";
$im = @imagecreatetruecolor(270, 25)
      or die('Cannot Initialize new GD image stream');
$backg = imagecolorallocate($im,255,255,255);
imagefill($im, 0, 0, $backg);
$color = ImageColorAllocate($im, 0,0,0);
ImageTTFText($im,16,0,0,16, $color,$font,'hello');
header ('Content-type: image/gif');
ImageGIF($im);
ImageDestroy($im);   

在同一个文件夹中试试这个...字体