Dynamische Grafiken mit PHP erstellen schlägt fehl
Cryoxx
- php
0 Cryoxx0 basti_p0 Cryoxx0 Der Martin0 Pryos.org
0 Der Martin0 Tom
Guten Tag,
Ich habe heute eine function geschrieben, diese soll bei ihrem einsatz
ein PNG erstellen, Scripte sind am Ende des postes, jedoch wird nur unverständliches gebrabbel geschrieben
Der Text soll aus einer Variablen kommen, siehe script, jedoch wie ihr oben seht funktioniert das nicht
Bitte um Hilfe.
MfG
Cryoxx
hier die Scripts
Die function:
function drawpng($text) {
$image = imagecreate ( 30, 290 );
$farbe_body = imagecolorallocate ( $image, 243, 243, 243 );
$farbe_b = imagecolorallocate ( $image, 10, 36, 106 );
imagestringup ( $image, 5,5,280, '$text', $farbe_b);
imagepng ( $image );
}
Das Ausführende Script
while (!$DBartikel->readeof()){
$artbez = $DBartikel->row("Bez");
echo "<td class=\"degree90\">";
drawpng($artbez);
echo "</td>";
Sry for Doppelpost
http://img407.imageshack.us/img407/782/fehlerf.png
das ist der korrekte link
Hallo,
da fehlt noch die korrekte Header-Anweisung (Content-type).
Grüße Basti
Danke für den Tipp Basti,
jedoch
da fehlt noch die korrekte Header-Anweisung (Content-type).
definiere ich schon weiter oben mit einer myheader funktion den header undzwar mit dieser function
function myheader ($titel) {
echo " <div class=\"DIVpaper\" align = \"center\">\n";
echo " <font size=+2><b>" . $titel . "</b></font><br/><br/>\n";
echo " <hr/>";
if ($_SESSION["kundenID"] > 0) {
createdropdown();
}
}
und da das png erst viel später im script gezeichnet werden soll funktioniert das ganze nicht.
Hallo,
da fehlt noch die korrekte Header-Anweisung (Content-type).
definiere ich schon weiter oben mit einer myheader funktion den header undzwar mit dieser function
function myheader ($titel) {
echo " <div class="DIVpaper" align = "center">\n";
echo " <font size=+2><b>" . $titel . "</b></font><br/><br/>\n";
echo " <hr/>";
if ($_SESSION["kundenID"] > 0) {
createdropdown();
}
}
das ist Quark. Dieser Code hat nichts mit der Erzeugung einer PNG-Grafik zu tun. Und einen HTTP-Header sendet er auch nicht.
> und da das png erst viel später im script gezeichnet werden soll funktioniert das ganze nicht.
Sag jetzt bitte nicht, du versuchst HTML und Grafikdaten in \*einer\* Ressource zu mischen!?
So long,
Martin
--
[Ich bin 30](http://community.de.selfhtml.org/zitatesammlung/zitat318). Ich demensiere apokalyptisch.
(Orlando)
definiere ich schon weiter oben mit einer myheader funktion den header undzwar mit dieser function
Das ist für deine HTML Datei, hier geht es jedoch um Bilder.
Du kannst keine Bilder direkt in eine HTML Ausgabe schreiben, du benötigst ein IMG-Tag welches auf eine Datei zeigt.
z.b.
<img src='drawpng.php?text=$artbez'>
in dieser führst du dann dein PHP Code aus deiner Funktion aus. Aber vergiss den Content-Header nicht:
header("Content-Type: image/png");
Infos hier:
http://de3.php.net/manual/de/function.imagepng.php
Hallo,
Ich habe heute eine function geschrieben, diese soll bei ihrem einsatz
ein PNG erstellen [...] jedoch wird nur unverständliches gebrabbel geschrieben
Du meintest wohl:
Wenn du schon ein Bild verlinken willst, dann verlinke auch wirklich das Bild, und nicht das HTML-Dokument drumherum.
Außerdem ist das zu 0% hilfreich für die Problemlösung, denn das ist ein technisch einwandfreies PNG. Wenn du das fehlerhafte Bild direkt verlinkt hättest, könnte man gezielter helfen.
function drawpng($text) {
$image = imagecreate ( 30, 290 );
$farbe_body = imagecolorallocate ( $image, 243, 243, 243 );
$farbe_b = imagecolorallocate ( $image, 10, 36, 106 );
imagestringup ( $image, 5,5,280, '$text', $farbe_b);
imagepng ( $image );
}
Wie schon erwähnt: Da fehlt der richtige HTTP-Header.
> Das Ausführende Script
> ~~~php
while (!$DBartikel->readeof()){
> $artbez = $DBartikel->row("Bez");
> echo "<td class=\"degree90\">";
> drawpng($artbez);
> echo "</td>";
NEIN! NEIN! NEIN!
Du kannst nicht mitten in einem HTML-Dokument plötzlich anfangen, Bilddaten zu erzeugen! Wie ein Bild in ein Dokument eingebunden wird, ist HTML-Grundwissen.
So long,
Martin
Hello,
Ich habe heute eine function geschrieben, diese soll bei ihrem einsatz
ein PNG erstellen, Scripte sind am Ende des postes, jedoch wird nur unverständliches gebrabbel geschrieben
Sie erstellt auch die Daten einer PNG-Grafik, sofern sie das kann.
Aber Du sendest diese dann vermutlich, ohne den passenden Header vorauszusenden. Stattdessen scheinst Du z.B. andere Zeichen voraus zu senden, vielleicht auch, ohne es zu merken.
Der Browser "denkt" dann: 'ah, da kommt unstrukturierter Text. Den stellste jetzt mal dar'.
Universelle Funktionen sollten möglichst nicht die Standardausgabe direkt bedienen, sondern nur einen Rückgabewert erzeugen, der dann nach Belieben weiterverarbeitet werden kann.
Die function:
function drawpng($text)
{
$image = imagecreate ( 30, 290 );
$farbe_body = imagecolorallocate ( $image, 243, 243, 243 );
$farbe_b = imagecolorallocate ( $image, 10, 36, 106 );
imagestringup ( $image, 5,5,280, '$text', $farbe_b);
imagepng ( $image );
## Standardausgabe schreiben, anstatt es z.B. erst in eine Datei zu schreiben
## oder aber einen passenden Header vorweg zu setzen.
}
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>