2010-09-25 9 views
5

Jestem prawie pewien, że istnieje głupi powód, dla którego to nie działa, ale po prostu nie mogę wymyślić tego. Próbuję tylko wydrukować jakiś tekst jako grafikę z imagettftext, ale nie mogę odczytać słów. To jest na serwerze GoDaddy, więc nie wszystko kontrolować, ale tutaj są dane z phpinfo():PHP imagefttext (imagettftext) nic nie wyświetla

  • Wersja 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 Wsparcie włączona
  • GD Version pakiecie (2.0.34 compatible)
  • FreeType Pomoc włączoną
  • FreeType powiązania z freetype
  • Wersja FreeType 2.2.1

Oto kod, którego używam. Nic nadzwyczajnego i dziwnego.

$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); 

Próbowałem zmiany nazwy czcionki różne sposoby:

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

Próbowałem przy użyciu PNG zamiast GIF, próbowałem za pomocą imagefttext() i imagettftext(), I” ve próbował wyświetlać błędy, ale nie pokazuje żadnych błędów, tylko pusty ekran. Jakieś pomysły? To musi być coś tak głupiego ...

+0

Do wszystkich, którzy przychodzą tutaj z wyszukiwarek: proszę zwrócić uwagę na odpowiedź @ Mark Lalor poniżej, ponieważ żałuję, że nie. To był dokładnie mój problem: musiałem ustawić 'imagettftext ($ image, 20, 20, 20, 20, $ black, $ font, 'TESTING TEXT');' aby zobaczyć trochę tekstu, a następnie wziąłem to stamtąd –

Odpowiedz

6

mam to (Bolało głowę na chwilę, biorąc pod uwagę, że jestem ekspertem w tej sprawie ...)

Błędem było to, że pozycja Y musi mieć offeset z wielkość czcionkitak powinno to wyglądać tak

<?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); 
?> 
+0

Wow, to było coś głupiego. Pozycja Y jest dolną częścią tekstu, a nie górą. Ugh. Dzięki wielkie. – SenorPuerco

+0

Ups, wygląda na to, że odpowiedź Jatt przyszła przed twoją. Zamienię zaakceptowaną odpowiedź na jego. Jeszcze raz dziękuję. – SenorPuerco

+0

OK, nie mogę odczytać poprawnie. Przełączam odpowiedź z powrotem na twoją. Do licha. – SenorPuerco

1

Czy to możliwe, że pisałeś błędnie imagettftext?

+0

imagettftext() i imagefttext() to dwie różne funkcje. Dziękuję za pomoc. – SenorPuerco

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); 

spróbować tego ... czcionkę w tym samym FOLDE r

+0

Tak, to było to. Śmierdząca współrzędna Y jest dolną częścią tekstu, a nie górą, więc wyświetlałem tekst z góry grafiki. Do licha. – SenorPuerco

+0

Przyjąłem odpowiedź Marka, ponieważ pojawiła się kilka minut przed twoją. Wielkie dzięki. – SenorPuerco