Der Martin: Mehrzeilige Bilder erstellen mit PHP

Beitrag lesen

Hallo,

so die nächste Baustelle: das Bild wird erstellt, nur bei mehrzeiligen fehlt der Text - nur der schwarze Hintergrund wird angezeigt.

			foreach($bild_zeilen as $Nr=>$Text)
				{
				$textnr = 4;
				$textbreite = imagefontwidth($textnr) * strlen($Text);
				$texthoehe  = imagefontheight($textnr);
				$img = imagecreate($textbreite,$texthoehe);
				$bg = imagecolorallocate($img,0,20,0);
				$white = imagecolorallocate($img,255,255,255);	
				imagestring ($img, $textnr, 0, $Nr*20, $Text, $white);
				}
			header("Content-Type: image/gif");
			imagegif($img);

wenn ich die foreach-Schleife mal anschaue, fällt mir ein logischer Fehler auf: In jedem Schleifendurchlauf erzeugst du ein Bild, das genau die Maße der in diesem Durchlauf bearbeiteten Textzeile hat, dann schreibst du den Text hinein ... und wirfst es im nächsten Schleifendurchlauf wieder weg und erzeugst ein neues Bild.
Nur nach dem letzten Durchlauf gibst du das erzeugte Bild aus.

Solltest du nicht lieber vor der Schleife die Bildgröße anhand der Anzahl der Zeilen und der Länge der längsten Zeile bestimmen und das image-Objekt erzeugen? Und dann in der Schleife nur die einzelnen Zeilen mit dem passenden y-Offset ins Bild schreiben?

So long,
 Martin