PHP Hintergrundfarbe im PNG überlagert Text


Nubba

Grünschnabel
Hi,

im Code soll ein PNG mit variabler Hintergrundfarbe erzeugt werden und ein Text über dem Bild stehen.
Aus irgendeinem Grund überlagert aber der Hintergrund den Text der drüber steht.
Nehme ich den alten statischen Bildpfad funktioniert alles tadellos.

Hier der Code, evtl. sieht jemand den Fehler:
Code:
$new   = imagecreatetruecolor(311, 120);  //Fläche
$colors = imagecolorallocate($new, $_REQUEST['backr'], $_REQUEST['backg'], $_REQUEST['backb']); //Farbenwert
imagefill($new, 0, 0, $colors); //Füllung
header('Content-type: image/png');
imagepng($new); // Erzeugung PNG
$image = imagecreatefrompng($new);
//$image = imagecreatefrompng('images/test.png'); --> vorherige Pfadangabe Backup
Der Kommentar ist der fixe Bildpfad der so alleine auch funktioniert hat.
Ich habe praktisch nur versucht die eine Kommentarzeile mit dem Code zur Erzeugung eines PNG´s zu ersetzen.

Die Werte für die Hintergrundfarbe kommen auch korrekt an.

Das $image wird für den Text der über dem Bild steht benötigt.

Danke für eure Hilfe.
 
Zuletzt bearbeitet:

Nubba

Grünschnabel
Kann mir niemand helfen?
Fehlt euch was?

Mir geht es wirklich nur um die ersten 5 Zeilen, laut Manual sollte das so richtig sein um ein PNG zu erstellen.
Wenn ich header('Content-type: image/png') rausnehme bekomme ich folgende Meldung:
imagecreatefrompng($new): failed to open stream: No such file or directory on line 6 (in diesem Fall).

Die ursprüngliche Zeile ein statischen Bild.
$image = imagecreatefrompng('images/test.png');

Dieses Bild möchte ich zu einer Fläche mit gleicher Größe aber einfarbigen Hintergrund ändern und als PNG wie im ursprünglichen Code speichern damit ich es so auch weiterverwenden kann mit dem restlichen Code.

Was muss ich dafür tun?
$_REQUEST['backr'], $_REQUEST['backg'], $_REQUEST['backb'] sind die Variablen die im HTML so mitgegeben werden und auch korrekt übergeben werden, der RGB-Code für die Farbe.
 
Zuletzt bearbeitet:

Technipion

Erfahrenes Mitglied
Ich habe jetzt ehrlichgesagt das Problem nicht ganz verstanden.
Hi,

im Code soll ein PNG mit variabler Hintergrundfarbe erzeugt werden und ein Text über dem Bild stehen.
Aus irgendeinem Grund überlagert aber der Hintergrund den Text der drüber steht.
In deinem Code erzeugst du eine leere PNG, füllst sie mit einer Farbe, und erzeugst daraus ein Bild. Wo genau soll jetzt dieser Text herkommen, der davor stehen soll? Wird der erst in der fertigen HTML-Datei drübergelegt oder wie?
Weil an dem Codeausschnitt an sich, fällt mir jetzt eigentlich kein Fehler auf...

Gruß Technipion