2010-09-25 3 views
5

Sono quasi sicuro che ci sia una ragione stupida che questo non funzioni, ma non riesco a capirlo. Sto solo provando a stampare del testo come un grafico con imagettftext, ma non riesco a far visualizzare le parole. Questo è su un server GoDaddy, quindi non controllare tutto, ma qui ci sono le specifiche da phpinfo():PHP imagefttext (imagettftext) non visualizza nulla

  • PHP Versione 5.2.14
  • --with-gd' '--con- freetype-dir =/usr '' --with-jpeg-dir =/usr '' --with-png-dir =/usr/bin/libpng-config '' --enable-gd-native-ttf '
  • GD Support abilitato
  • GD versione in bundle (2.0.34 compatibile)
  • FreeType Support abilitato
  • FreeType Collegamento con freetype
  • 0.123.516,41 mila
  • FreeType Versione 2.2.1

Ecco il codice che sto utilizzando. Niente di stravagante o strano.

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

Ho provato a cambiare il nome del font diversi modi:

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

Ho provato con PNG al posto di GIF, Ho provato con imagefttext() e imagettftext(), I' Ho provato a visualizzare errori, ma non mostra errori, solo uno schermo vuoto. Qualche idea? Deve essere qualcosa di così stupido ...

+0

Per tutti coloro che vengono qui dai motori di ricerca: si prega di prestare attenzione alla risposta di @Mark Lalor in basso, perché mi dispiace di non averlo fatto. Questo era esattamente il mio problema: dovevo impostare 'imagettftext ($ image, 20, 20, 20, $ black, $ font, 'TESTING TEXT');' per iniziare a vedere un pezzetto di testo e poi ho preso da lì –

risposta

6

ho preso (Mi faceva male la testa per un po 'considerando che sono un esperto su questo ...)

L'errore era che la posizione Y deve avere un offeset di la dimensione del carattere quindi dovrebbe assomigliare a questo

<?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, è stato qualcosa di stupido. La posizione Y è la parte inferiore del testo, non la cima. Ugh. Grazie mille. – SenorPuerco

+0

Oops, sembra che la risposta di Jatt sia arrivata prima della tua. Ho intenzione di passare la risposta accettata alla sua. Grazie ancora, però. – SenorPuerco

+0

OK, non riesco a leggere correttamente. Passando la risposta al tuo. Sheesh. – SenorPuerco

1

Potrebbe essere che hai digitato imagettftext sbagliato?

+0

imagettftext() e imagefttext() sono due funzioni diverse. Grazie per aver cercato di aiutare, però. – 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); 

provare questo ... tipo di carattere nella stessa folde r

+0

Sì, era così. La coordinata Y puzzolente è la parte inferiore del testo, non quella in alto, quindi stavo visualizzando il testo dalla parte superiore del grafico. Sheesh. – SenorPuerco

+0

Ho accettato la risposta di Mark da quando è arrivato un paio di minuti prima del tuo. Grazie mille però. – SenorPuerco