Hallo,
Hallo und guten Nachmittag Herr Autor ;-)
du jetzt auch noch ... :-)
also halten wir mal fest: Dieses Script gibt eine JPEG-Bildressource aus. Wobei ich ehrlich gesagt noch den Header "Content-Type: image/jpeg" vermisse; ich weiß aber nicht, ob imagejpeg() das nicht möglicherweise von sich aus erledigt.
Ja, es macht aus dem Pixelhaufen (hier 4 Bytes im Speicher pro Pixel) eine JPEG-Datei. Wenn man den Dateinamen weglässt, wird statt in eine Datei auf der Platte in die Standard-Ausgabe (also in diesem Fall der Kanal zum Browser) geschrieben.
Stimmt. Ich hatte völlig übersehen, dass Jo einen Dateinamen angegeben und somit tatsächlich eine Datei erzeugt hat, weil mir diese Verwendung zwar latent bekannt war, ich sie aber noch nie so angewendet habe. Ich habe die Daten immer mit imagejpeg() sofort an den anfragenden Client (über stdout) ausgegeben.
JPEG-Dateien enthalten keine HTTP-Header ;-)
Ach. Ach was.
Aber JPEG-Header. Also nicht nur den reinen Pixelhaufen. ;-)
Wenn man die Datei also zum Browser schicken will, muss man vorher den passenden Header senden (setzen), wenn sie denn vom Browser auch als Bilddatei verstanden werden soll.
Das habe ich fast intuitiv immer getan, wenn ich eine der entsprechenden Funktionen aus der gdlib verwendet habe. Ich könnte mir trotzdem vorstellen, dass in den imagexxx-Funktionen wieder eine passende "Magie" steckt, die das für mich erledigt, wenn ich es nicht selbst mache.
Ciao,
Martin