PNG Erzeugung aus XML-Daten via PHP
MIllinger
- grafik
- php
- xml
Hallo,
ich hoffe finde hier Hilfe, bei einem Problem.
Ich möchte gern aus einer XML Datei Werte auslesen und diese für die Erzeugung einer PNG-Datei via PHP nutzen. Wenn ich die Werte des Inhalts des XML-Datei an den IMAGE-Generator übergebe meldet mir das System "Die Grafik '<Ablage PHP-Datei>' kann nicht angezeigt werden, weil sie Fehler enthält.".
<?PHP
$lib = new SimpleXMLElement('xml/template.xml',null,true);
// Aufruf der Bildfunktion
bild ($lib->Elements[0]->Text['Width'], 400, 400, 400, "Hallo");
function bild($i_x1, $i_x2, $i_y1, $i_y2, $i_text) {
$x1 = $i_x1;
$y1 = $i_y1;
$x2 = $i_x2;
$y2 = $i_y2;
$Text = $i_text;
$textnr = 4;
header ("Content-type: image/png");
$bild = imagecreate ($x1 , $y1);
imagecolorallocate ($bild, 0, 0, 0);
$text_farbe = ImageColorAllocate ($bild, 255, 255, 0);
ImageString ($bild, $textnr, 0, 0, $Text, $text_farbe);
ImagePNG ($bild);
?>
Wenn ich das Statment $lib->Elements[0]->Text['Width']
, durch eine Zahl ersetze funktioniert die Bild erzeugung. Die Weitergabe eines Textes aus der XML-Datei kann ich an das IMAGE-Statamt übergeben.
Gibt es hier eine Problem bei der Interpretation?
Danke
Martin
Hi,
Ich möchte gern aus einer XML Datei Werte auslesen und diese für die Erzeugung einer PNG-Datei via PHP nutzen. Wenn ich die Werte des Inhalts des XML-Datei an den IMAGE-Generator übergebe meldet mir das System "Die Grafik '<Ablage PHP-Datei>' kann nicht angezeigt werden, weil sie Fehler enthält.".
die wahrscheinlichste Ursache ist, dass eine der Funktionen, die du aufrufst, eine Fehlermeldung ausgibt, die dann als Text am Anfang der vermeintlichen PNG-Grafik steht. Überprüfe das am besten, indem du zum Testen erstmal text/plain als Content-Type angibst und den Aufruf von imagepng() auskommentierst. Wenn du das Script nun aufrufst, darf theoretisch keine Ausgabe kommen.
<?PHP $lib = new SimpleXMLElement('xml/template.xml',null,true); // Aufruf der Bildfunktion bild ($lib->Elements[0]->Text['Width'], 400, 400, 400, "Hallo"); function bild($i_x1, $i_x2, $i_y1, $i_y2, $i_text) { $x1 = $i_x1; $y1 = $i_y1; $x2 = $i_x2; $y2 = $i_y2; $Text = $i_text; $textnr = 4; header ("Content-type: image/png"); $bild = imagecreate ($x1 , $y1); imagecolorallocate ($bild, 0, 0, 0); $text_farbe = ImageColorAllocate ($bild, 255, 255, 0); ImageString ($bild, $textnr, 0, 0, $Text, $text_farbe); ImagePNG ($bild); ?>
Einen Syntaxfehler sehe ich hier schon auf den ersten Blick: Der Funktion bild() fehlt eine schließende Klammer. Außerdem sehe ich keinen Sinn darin, einen Anweisungsblock, der nur einmal aufgerufen wird (mehr lässt deine Logik gar nicht zu), in eine Funktion zu kapseln.
Wenn ich das Statment
$lib->Elements[0]->Text['Width']
, durch eine Zahl ersetze funktioniert die Bild erzeugung.
Aber nicht mit dem hier gezeigten Code.
Die Weitergabe eines Textes aus der XML-Datei kann ich an das IMAGE-Statamt übergeben.
Wie bitte??
So long,
Martin
Hallo,
Gibt es hier eine Problem bei der Interpretation?
Ich interpretiere das so, dass deine Bildfunktion eine Zahl erwartet, deine XML-Funktion dir aber nur einen Textstring liefert, den du für eine Zahl hältst.
Gruß
Kalk
@@MIllinger
Ich möchte gern aus einer XML Datei Werte auslesen und diese für die Erzeugung einer PNG-Datei via PHP nutzen.
Wie soll die generierte Grafik aussehen? Kann es sein, dass für dich dasselbe gilt und du besser SVG statt PNG verwenden solltest?
LLAP 🖖