我几乎肯定有一个愚蠢的原因,这不起作用,但我只是想不出这个。我只是试图用imagettftext将一些文本打印成图形,但是我无法显示这些文字。这是在GoDaddy服务器上,所以我不控制所有内容,但这里是phpinfo()的规范:
这是我正在使用的代码。没什么好看或奇怪的。
$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(),我尝试过显示错误,但它没有显示任何错误,只是一个空白的屏幕。有任何想法吗?它必须是如此愚蠢的东西......
答案 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);
在同一个文件夹中试试这个...字体