PHP imagefttext (imagettftext) ничего не отображает - PullRequest
6 голосов
/ 25 сентября 2010

Я почти уверен, что есть глупая причина, по которой это не работает, но я просто не могу понять это. Я просто пытаюсь распечатать некоторый текст в виде изображения с 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 ]

7 голосов
/ 25 сентября 2010

Я понял (Мне больно на некоторое время, учитывая, что я эксперт в этом ...)

Ошибка заключалась в том, что позиция Y должен иметь Offset размер шрифта , поэтому он должен выглядеть следующим образом

<?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 голос
/ 25 сентября 2010
$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);   

попробуйте этот ... шрифт в той же папке

1 голос
/ 25 сентября 2010

Может быть, вы написали imagettftext неправильно?

...