phpbar.de logo

Mailinglisten-Archive

[php] imagettftext zeichnet nichts

[php] imagettftext zeichnet nichts

Andreas Demmer php at andreas-demmer.de
Son Okt 8 08:55:40 CEST 2006


Hi Liste,

nach langer Zeit stolpere ich mal wieder über ein Problem, an dessen 
Lösung ich alleine gescheitert bin. Eventuell kann mich einer von Euch 
auf die richtige Spur bringen:

Ich habe ein Capcha geschrieben, welches seit geraumer Zeit auf 2 
Servern problemlos läuft. Dieses zeichnet den Text mit Hilfe von 
imagettftext.

Auf einem neuen Server allerdings funktioniert das Ganze nicht mehr: 
Zwar wird das Bild an sich gezeichnet (Hintergrund, Störer), nicht 
jedoch der mit imagettftext generierte Text. Dabei wirft imagettftext 
keinerlei Fehlermeldung aus.

Hier die entsprechende Methode:

	/**
	 * renders captcha image
	 */
	private function drawCaptcha () {
		$stringLength = strlen($this->string);
		$this->width = imagefontwidth($this->fontSize) * strlen($this->string) 
+ ($stringLength * 3);
		$this->height = imagefontheight($this->fontSize) * 2;
		$fontHeight = $this->height / 1.5;

		$this->image = imagecreate($this->width , $this->height);
		$bg = imagecolorallocate($this->image, $this->backgroundColor[0], 
$this->backgroundColor[1], $this->backgroundColor[2]);

		for ($i = 0; $i < $stringLength; $i++) {
			$char = substr($this->string, $i, 1);
			$xPos = $i * imagefontwidth($this->fontSize);
			$xPos = ($i > 0) ? $xPos + $i * 3 : $xPos;
			$yPos= $this->height - (rand(0, $fontHeight) / 2);

			imagettftext($this->image, $this->fontSize, 0, $xPos, $yPos, 
$this->getRandomColor(), $this->font, $char);
		}
	}

Ich bin mir sicher, die GDlib richtig kompiliert zu haben, das meint 
auch phpinfo:
GD Support 	enabled
GD Version 	2.0 or higher
FreeType Support 	enabled
FreeType Linkage 	with freetype
FreeType Version 	2.1.9
GIF Read Support 	enabled
GIF Create Support 	enabled
JPG Support 	enabled
PNG Support 	enabled
WBMP Support 	enabled

Die TrueType Font liegt auch an der bezeichneten Stelle und die 
Font-Datei ist beim Upload korrekt geschrieben worden und nicht kaputt. 
file_exists versichert mir auch, dass der Pfad zur Schriftart stimmt.

Jetzt stehe ich etwas ratlos da. Zwar hat Google jemanden zu Tage 
gefördert, der wohl das gleiche Problem, allerdings ebenfalls keine 
Lösung hat: http://www.techiegroups.com/showthread.php?t=35038

Wer kann mir helfen?

Gruss,
Andreas

-- 
http://www.andreas-demmer.de

php::bar PHP Wiki   -   Listenarchive