[PHP] Zeilenumbrüche u. anpassung der Bildgröße

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
gnol
Mitglied
Beiträge: 79
Registriert: 13.09.2006 15:07
Wohnort: Bodensee
Kontaktdaten:

[PHP] Zeilenumbrüche u. anpassung der Bildgröße

Beitrag von gnol »

Ich habe hier ein Bild das per PHP Generiert wird:
http://sig-box.de/sig.php

Hier der Code:

Code: Alles auswählen

<?php
header("Content-type: image/png");

include "./inc/db.php";
include "./f/show_sig.php";
include "./f/counter.php";

$im = ImageCreate (300, 200);
ImageColorAllocate($im, 255, 255, 255);
$col = ImageColorAllocate($im, 0,0,0);

$sql = "XXX";
$c = mysql_query($sql) or die (mysql_error());
$a = mysql_fetch_assoc($c);

$text = $a['XXX'];

imagettftext($im, 9, 0 , 10 , 30, $col, "arial.ttf" , $text);

ImagePNG($im);
imagedestroy($im);
?>
Öfters sind die Texte aber größer als das Bild.. wie kann ich es machen, dass php mir automatisch ein Zeilenumbruch einbaut, wenn es aus dem Bild "rausläuft". Und wie passe ich die Bildgröße am besten mit dem Text an?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Das kannst du nur machen indem du selbst weißt wie breit so ein Buchstabe ist und dann die Breite vorausberechnest, jedenfalls wüsste ich keinen Mechanismus der das von alleine tut. Du musst dann vorausberechnen wie viel in eine Zeile passt und nur so viel auch da reinschreiben. Dann musst du den Ort an dem die nächste Zeile gesetzt werden soll manuell einstellen und den Rest eintragen. Von alleine dürfte da nix gehen. Wenn die Berechnung genau sein soll, dann brauchst du genaue Informationen über die Buchstabenbreite der einzelnen Buchstaben (ein i braucht weniger Platz als ein m) und musst die aufsummieren wobei du die Zeilenbreite kennst. Wenn du die Breite überschreitest musst du die Schleife abbrechen und alles bis (ausschließlich) dem aktuellen Buchstaben in die Zeile packen. Wenn du es hübsch haben willst gehst du sogar noch bis zum letzten Leerzeichen zurück.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
gnol
Mitglied
Beiträge: 79
Registriert: 13.09.2006 15:07
Wohnort: Bodensee
Kontaktdaten:

Beitrag von gnol »

kannst du mir verraten welche Funktionen ich dazu brauche?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Nur ein paar for oder while Schleifen und ein paar Variablen sowie die Breite der Buchstaben in Pixeln (wenn du es genau haben willst in einem Array mit Einträgen für alle möglichen Zeichen, sonst eben einen Wert festlegen, der ein wenig über dem Mittelwert liegt).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Jan500
Ehemaliges Teammitglied
Beiträge: 4199
Registriert: 01.03.2003 21:32
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Jan500 »

hi

evtl ist [php:imagefontwidth] hilfreich ;)

bzw du kannst auch monospaceschrifarten benutzen ;)


gruß Jan
"Life begins at 40 Knots...!" :D
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
Antworten

Zurück zu „Coding & Technik“