Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Zufallstext auf Bild
Frage
Hi
ich würde gerne einen Zufallstext auf ein Bild kriegen per PHP, kann mir jemand helfen?
ein script um nen text auf ein bild zu kriegen habe ich:
[code]
<?php
error_reporting(E_ALL);
// bissel Text zum testen
$TXT = ´
ein sack nudeln.
the quick brown fox jumps over the lazy dog
the quick brown fox jumps over the lazy dog
the quick brown fox jumps over the lazy dog
´;
$ANZ = 30; // max. Zeichen pro Zeile
/*
Bei der Anzahl der Zeichen pro Zeile muss man etwas probieren.
Erst recht wenn man keine extra Schriftarten benutzt.
Da bei diesem Beispiel nur ImageString() benutzt wird, habe ich
zum Test mal mit der Anzahl der Zeichen gearbeitet.
Man könnte das Script auch umschreiben und eigene Schriftarten benutzen.
Hier dann mit ImageTTFText() arbeiten.
Anstelle der Anzahl der Zeichen, kann hier dann die Breite der Schrift
ermittelt werden.
*/
// nur zur Absicherung
if ($ANZ > 70 || $ANZ < 5) { $ANZ = 30; }
// den Text nach Zeilenumbruch aufteilen
$umb = split("\r\n|\n\r", $TXT);
// array bereitstellen
$wort_array = array();
/*
Keine schöne Methode, aber sie funktioniert.
Der Text muss vorher etwas formatiert werden.
Er soll zudem dort einen Zeilenumbruch bekommen,
wo es auch nötig ist, sonst nicht.
*/
foreach($umb as $temp) {
if ( strlen($temp) > $ANZ) {
$temp_2 = split(´<br>´, wordwrap( $temp, $ANZ, ´<br>´, 1) );
foreach($temp_2 as $sp) { $wort_array[] = trim($sp); }
} else {
$wort_array[] = trim($temp);
}
}
// zur Kontrolle
// print_r($wort_array);
/*
Etwas komische aber mögliche Variante zur Berechnung der
Bildhöhe, je mehr Zeilen - umso höher das Bild
*/
$font_size = 4;
$zeilen_höhe = $font_size * ( $font_size * 0.875 );
$zeilen_gesamt = count($wort_array);
$BB = ´300´; // breite des Bildes
// höhe des Bildes
$HH = ($zeilen_gesamt * $zeilen_höhe) + ( $zeilen_höhe * 2 );
/* ab hier die Grafik erzeugen ------------------------------------ */
// neue Grafik erzeugen
$im = ImageCreateTrueColor( $BB, $HH);
// Farben definieren
$WS = ImageColorAllocate($im, 255, 255, 255); // weiss
$SW = ImageColorAllocate($im, 50, 50, 50); // grauton
// Hintergrund mit Farbe füllen
ImageFill ($im, 0, 0, $WS);
// $wort_array jetzt auslesen
$cc = 0;
foreach( $wort_array as $zeile) {
$step = $zeilen_höhe * $cc++; // eine Art Zeilensprung
ImageString ($im, $font_size, 10, $step, $zeile, $SW);
}
/*
Zum testen wird das Bild hier mal mit "echo" ausgegeben.
Kann auch mittels Header() erstellt werden, dann muss allerdings
die Header-Zeile im Script eingefügt werden.
Ein Dateiname bei ImagePNG() ist dann auch nicht nötig.
*/
ImagePNG($im, ´$$$.png´);
ImageDestroy($im); // nicht vergessen
echo ´<img src="$$$.png" border="1">´;
?>
[/code]
ich würde gerne in einer zweiten datei die verschiedene sätze schreiben, welche dann per zufall angezeigt werden.
wer kann helfen?
danke schön
Antwort 1 von Duda
das klappt irgendwi nicht mit dem tag. ich meine das script auf folgender seite zuunterst:
http://www.php.de/forum/ftopic45477.html
http://www.php.de/forum/ftopic45477.html
Antwort 2 von Duda
niemand?
Antwort 3 von duda
das kann doch nicht so schwer für einen php menschen sein? hehe
biddde
biddde

