Bild erstellen
Marc D
- php
0 Stefan Niehaus0 Marc D0 Stefan Niehaus0 Marc D
0 Andreas Korthaus0 Marc D0 Stefan Niehaus0 Tom
0 Tom
Hallo,
ich möchte mit PHP dynamisch ein Bild erstellen und dieses an den Browser senden. Klappt auch gut, allerdings nur im IE, in allen anderen Browsern wird Zeichenmüll ausgegeben.
Zur Erstellung:
So sieht die PHP Datei aus (bild.jpg jeißt sie):
<?php
header("content-type="image/jpeg"");
$new_image = @imagecreatefromjpeg("bild.jpg");
// Dann werden noch Texte reingeschrieben
imagejpeg($new_image,"",80);
?>
Über eine htaccess Datei habe ich per ForceType gesagt, dass der Server die Datei als PHP behandeln soll.
Wie gesagt, es funktioniert im IE, bei anderen Browsern kommt der Zeichnmüll. Wie kann ich erreichen, dass das Bild auch bei anderen Browsern gezeigt wird? Stimmt der Header nicht? Oder muss ich noch was in die htaccess schreiben?
Vielen Dank für jede Hilfe
Marc
Über eine htaccess Datei habe ich per ForceType gesagt, dass der Server die Datei als PHP behandeln soll.
was meinst du damit?
Wenn der Server richtig konfiguriert ist und das script .php als Endung hat, wird das script ja immer als php erkannt. nimm das mal raus und sag uns was dann kommt.. nämlich wenn dir anderen browser nicht wissen, dass das ein bild ist kommt sowas raus.
In manchen Sachen ist der IE ja ein bisschen gütiger
Über eine htaccess Datei habe ich per ForceType gesagt, dass der Server die Datei als PHP behandeln soll.
was meinst du damit?
Ich habe dem Server gesagt, dass diese Jpeg Datei für ihn eine PHP Datei ist
Wenn der Server richtig konfiguriert ist und das script .php als Endung hat, wird das script ja immer als php erkannt. nimm das mal raus und sag uns was dann kommt.. nämlich wenn dir anderen browser nicht wissen, dass das ein bild ist kommt sowas raus.
In manchen Sachen ist der IE ja ein bisschen gütiger
Der Server ist richtig konfiguriert, wenn ich die Datei als PHP Datei mache, dann passiert das gleiche, nur wenn ein User eine PHP Datei als Bild aufruft, dann sieht das komisch aus. Ich kann dem Server ja sagen, dass er eine Datei so behandeln soll, auch wenn sie eine ganz andere Endung hat.
wenn du aber de server sagst er soll ein bild wie eine php-datei sehen, dann gibt er nur den inhalt der datei aus (also die Zeichen) und nicht das Bild in sich.. eine evtl. header ist ihm dann scheiß egal ;)
wenn du aber de server sagst er soll ein bild wie eine php-datei sehen, dann gibt er nur den inhalt der datei aus (also die Zeichen) und nicht das Bild in sich.. eine evtl. header ist ihm dann scheiß egal ;)
hallo,
das stimmt nicht, ich hab den Fehler gefunden, ich hab Content-type= image/jpeg, es muss aber Content-type: image/jpeg sein.
Nun funktioniert alles, das Bild wird dargestellt, obwohl die Datei .jpg heißt und wie PHP vom Server aus interpretiert wird.
Hi!
sieht die PHP Datei aus (bild.jpg jeißt sie):
<?php
header("content-type="image/jpeg"");
die " brauchst Du AFAIK nicht unbedingt. Webserver verwenden die normalerweise auch nicht (AFAIK).
$new_image = @imagecreatefromjpeg("bild.jpg");
// Dann werden noch Texte reingeschrieben
aber kein echo oder sowas, ja?
imagejpeg($new_image,"",80);
?>
Wie gesagt, es funktioniert im IE, bei anderen Browsern kommt der Zeichnmüll. Wie kann ich erreichen, dass das Bild auch bei anderen Browsern gezeigt wird? Stimmt der Header nicht? Oder muss ich noch was in die htaccess schreiben?
Hast Du Dir mal die HTTP-Header die tatsächlich gesendet werden angesehen?
Bei Firefox kannst Du das echt einfach mit der "Live HTTP Header" Extension. Dann am besten mit den Headern eines "echten" Bildes vergleichen.
Kann es sein dass Du vor <?php oder nach ?> irgendwas ausgibst, vielleicht hast Du nur ein Leerzeichen oder eine Leerzeile davor? Vielleicht auch eine Leerzeile/Leerzeichen am Anfang oder am Ende einer Datei die Du per include einbindest?
Grüße
Andreas
Hi!
sieht die PHP Datei aus (bild.jpg jeißt sie):
<?php
header("content-type="image/jpeg"");
die " brauchst Du AFAIK nicht unbedingt. Webserver verwenden die normalerweise auch nicht (AFAIK).
AFAIK ???
$new_image = @imagecreatefromjpeg("bild.jpg");
// Dann werden noch Texte reingeschrieben
aber kein echo oder sowas, ja?imagejpeg($new_image,"",80);
?>Wie gesagt, es funktioniert im IE, bei anderen Browsern kommt der Zeichnmüll. Wie kann ich erreichen, dass das Bild auch bei anderen Browsern gezeigt wird? Stimmt der Header nicht? Oder muss ich noch was in die htaccess schreiben?
Hast Du Dir mal die HTTP-Header die tatsächlich gesendet werden angesehen?
Firefox sagt mir, dass das Dokument vom Typ text/html ist, wenn ich ein Bild aufmache, dann zeigt Firefox mir genau den Typ an, den ich in der PHP setze image/jpeg!
Bei Firefox kannst Du das echt einfach mit der "Live HTTP Header" Extension. Dann am besten mit den Headern eines "echten" Bildes vergleichen.
Kann es sein dass Du vor <?php oder nach ?> irgendwas ausgibst, vielleicht hast Du nur ein Leerzeichen oder eine Leerzeile davor? Vielleicht auch eine Leerzeile/Leerzeichen am Anfang oder am Ende einer Datei die Du per include einbindest?
Es ist nichts drin, kein Leerzeichnen, Leerzeile oder sonst eine Ausgabe
Grüße
Andreas
AFAIK = As far as i know -> so weit ich weiß
Wenn dir Firefox sagt, dass das Dokument vom Typ text/html ist, dann interpretiewrt er das auch so.. da braucht man keine Kugel um vorher sagen zu können dass nur die Zeichen angezeigt werden. Also wird nicht richtig erkannt dass es sich um ein Bild handelt
Hello,
AFAIK = As far as i know -> so weit ich weiß
Wenn dir Firefox sagt, dass das Dokument vom Typ text/html ist, dann interpretiewrt er das auch so.. da braucht man keine Kugel um vorher sagen zu können dass nur die Zeichen angezeigt werden. Also wird nicht richtig erkannt dass es sich um ein Bild handelt
Ist bei dem gesendeten Header ja auch kein Wunder.
Siehe mein Posting oben.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
<?php
header("content-type="image/jpeg"");
"Content-type: image/jpeg";
versuch es mal so. Das sollte klappen.
Un dann würde mich bitte noch die Geschichte mit ForceType interessieren. Wo hast Du das wie festgelegt? Das würd ich nämlich gerne in meine Sammlung aufnehmen ;-)
Harzliche Grüße aus http://www.annerschbarrich.de
Tom