Grafikbearbeitung - Finde den Fehler nicht.
JvM
- php
Hallo!
Ich möchte mir eine kleine Pinnwand basteln, an der jeder seinen Eintrag "hinpinnen" kann. Dazu habe ich ein kleines PHP-Skript gebastelt, das erst aus einer Textdatei den Text ($text), die Farben für Hintergrund ($farbe1-3), für die Schriftfarben ($farbe4-6), für die PHP-Standardschrift ($font) und für die Positionen ($pos1 und $pos2) ausliest. Dies soll es für jeden Eintrag geben. So habe ich eine while-Schleife gebastelt, die erst die Daten auslesen soll und dann ein Viereck mit dem Text hinzufügen. Beim Auslesen der Variablen scheint auch der Fehler zu liegen. Die Grafiken werden nämlich wenn man die Werte direkt im PHP-Skript einträgt richtig angezeigt. Außerdem funktioniert die Angabe der Positionen nicht richtig. Ich hoffe ihr könnt mir helfen und ich habe mich klar ausgedrückt. Vielen Dank fürs lesen und evtl. für die Antwort. Hier der Quellcode:
<?php
$datei0 = fopen("pinnwand.dat","r");
if (!$datei0)
{
echo "<font color='ff0000'>Es gab einen Übertragungsfehler.<br>
Bitte lade die Seite neu.</font>";
exit;
}
else
{
$randh = 3;
$randv = 6;
$image = imagecreate(500,700);
$schwarz=imagecolorallocate($image,0,0,0);
while (!feof($datei0))
{
$font = fgets($datei0,100);
$text = fgets($datei0,100);
$farbe1 = fgets($datei0,100);
$farbe2 = fgets($datei0,100);
$farbe3 = fgets($datei0,100);
$farbe4 = fgets($datei0,100);
$farbe5 = fgets($datei0,100);
$farbe6 = fgets($datei0,100);
$pos1 = fgets($datei0,100);
$pos2 = fgets($datei0,100);
$font = trim($font);
$text = trim($text);
$farbe1 = trim($farbe1);
$farbe2 = trim($farbe2);
$farbe3 = trim($farbe3);
$farbe4 = trim($farbe4);
$farbe5 = trim($farbe5);
$farbe6 = trim($farbe6);
$pos1 = trim($pos1);
$pos2 = trim($pos2);
$hochtext = imagefontheight($font);
$breittext = strlen($text) * imagefontwidth($font);
$hoch=$hochtext+$randh*2;
$breit=$breittext+$randv*2;
$image = imagecreate($breit,$hoch);
$farbe_body=imagecolorallocate($image,$farbe1,$farbe2,$farbe3);
$schrift=imagecolorallocate($image,$farbe4,$farbe5,$farbe6);
imagefill ($image, 0, 0, $farbe_body);
imagerectangle($image, $pos1, $pos2, $breit-1, $hoch-1, $schwarz);
imagestring($image, $font, $randv-1, $randh-1, $text, $schrift);
}
fclose ($datei0);
header("Content-Type: image/png");
imagepng($image,"pinnwand.png");
imagedestroy($image);
}
?>
Die Pinnwand.dat sieht wie folgt aus:
5 //$font
Testtext //$text
0 //$farbe1
0 //$farbe2
0 //$farbe3
255 //$farbe4
255 //$farbe5
255 //$farbe6
190 //$pos1
500 //$pos2
5 //Der zweite Eintrag
abc
255
255
255
0
0
0
1
1
Julian