2010-09-25 10 views
5

Ich bin fast sicher, dass es einen dummen Grund gibt, dass das nicht funktioniert, aber ich kann das nicht herausfinden. Ich versuche gerade, etwas Text als Grafik mit imagettftext auszudrucken, aber ich kann die Wörter nicht anzeigen lassen. Dies ist auf einem GoDaddy-Server, so dass ich nicht alles kontrollieren, aber hier sind die Angaben von phpinfo():PHP imagefttext (imagettftext) zeige nichts an

  • PHP Version 5.2.14
  • --with-gd‘‚--with freetype-dir =/usr '' - mit-jpeg-dir =/usr '' - mit-png-dir =/usr/bin/libpng-config '' --enable-gd-nativ-ttf '
  • GD-Unterstützung aktiviert
  • GD Version gebündelt (2.0.34 kompatibel)
  • Freetype Unterstützung
  • Freetype Verknüpfung mit Freetype
  • aktiviert
  • FreeType Version 2.2.1

Hier ist der Code, den ich verwende. Nichts Besonderes oder Seltsames.

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

Ich habe versucht, den Schriftnamen unterschiedliche Weise zu ändern:

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

ich anstelle von GIF mit PNG versucht habe, hat mich mit imagefttext versucht() und imagettftext(), I‘ Ich habe versucht, Fehler anzuzeigen, aber es zeigt keine Fehler, nur ein leerer Bildschirm. Irgendwelche Ideen? Es muss etwas so dumm sein ...

+0

Für alle, die von den Suchmaschinen hierher kommen: Bitte beachten Sie die Antwort von @Mark Lalor unten, denn ich bereue es nicht. Das war mein Problem genau: Ich musste 'imagettftext ($ image, 20, 20, 20, 20, $ schwarz, $ font, 'TESTING TEXT') setzen;' um ein winziges bisschen vom Text zu sehen und dann nahm ich es von dort –

Antwort

6

Ich habe es (Es tat weh, mein Kopf für eine Weile bedenkt, dass ich ein Experte auf diesem bin ...)

Der Fehler war, dass die Y-Position eine offeset haben, hat die Schriftgröße so sollte es so aussehen

<?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, es war etwas dummes. Die Y-Position ist der untere Teil des Textes, nicht der obere. Pfui. Vielen Dank. – SenorPuerco

+0

Hoppla, es sieht so aus, als ob Jatt's Antwort vor Ihren kam. Ich werde die angenommene Antwort auf seine umstellen. Nochmals vielen Dank. – SenorPuerco

+0

OK, ich kann nicht richtig lesen. Die Antwort wird wieder auf Ihre übertragen. Meine Güte. – SenorPuerco

1

Könnte es sein, dass Sie imagettftext falsch geschrieben haben?

+0

imagettftext() und imagefttext() sind zwei verschiedene Funktionen. Danke, dass du versucht hast zu helfen. – 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); 

versuchen, diese ... Schrift in der gleichen folde r

+0

Ja, das war es. Die stinkende Y-Koordinate ist der untere Teil des Textes, nicht der obere, also habe ich den Text oben auf der Grafik angezeigt. Meine Güte. – SenorPuerco

+0

Ich akzeptierte Marks Antwort, da es ein paar Minuten vor deiner war. Vielen Dank. – SenorPuerco