LEX: Grafikausgabe klappt nicht

Hallo Scriptgenies,

Ich braüchte mal etwas Hilfe,
Ich versuche verzweifelt eine Grafikdatei auszugeben,  ohne das sie vom Browser oder von Proxys gecachet wird.
Also kommt nur der Aufruf <img src="grafik.pl"> in Frage.
Hab' jetzt folgende Variante probiert:

print ("Content-type: image/gif\n\n");
open (DATA, "bild.gif");
while (<DATA>)
{
   print $_;
}
close (DATA);

es wird auch eine Grafik ausgegeben, aber es sieht ganz anders aus als die Ursprungsdatei.
Habe ich etwa irgendwas übersehen, darf das GIF nur 16 Farben haben oder darf es nicht Transparent sein, oder so etwas ähnliches?
So etwas sieht man doch an jeder Ecke (Counter, Bannerrotation usw.), aber bei mir will es einfach nicht klappen.

Vielen Dank im vorraus,
LEX

  1. Hallo,
    vielleicht liegts am fehlenden BINMODE?

    ---probiers mal so---
    open IMG, 'd:/bilder/ahorn.jpg';
    binmode IMG;
    @bild = <IMG>;
    close IMG;
    print "Content-type: image/jpeg\n\n";
    binmode STDOUT;
    print @bild;
    ---eof---

    Viele Grüße, Rolf

    1. Hallo Rolf und LEX

      Danke für den Hinweis.
      Ich habe das gleiche wie LEX auch schon versucht. Deinen Vorschlag habe ich natürlich auch sofort ausprobiert.

      Leider geht beides nicht bei mir. Ich hab's verzweifelt probiert.

      Viel Grüße, Robert

      1. Hallo Rolf und LEX

        Danke für den Hinweis.
        Ich habe das gleiche wie LEX auch schon versucht. Deinen Vorschlag habe ich natürlich auch sofort ausprobiert.

        Leider geht beides nicht bei mir. Ich hab's verzweifelt probiert.

        Wahrscheinlich brauchen wir eine Kombination aus beidem, vielleicht finden wir ja noch jemanden der damit schon Erfahrungen gemacht hat. Ich werd' mich mal auf die Suche nach einem Beispielscript machen und eventuell mit einer Mischung aus beiden Scripten herum experimentieren.

        LEX

        1. Danke Lex!

          Wäre toll, wenn Du mir eine Nachricht zukommen läßt. Im Gegenzuge helfe ich Dir natürlich ebenfalls gerne mal bei einem Problemchen. Ansonsten kenn ich mich mit Perl nämlich mittlerweile schon ein bisserl aus.

          Meine eMail: 1020-207@online.de

          Viel Grüße, Robert

          1. Hi LEX und Robert,

            nochmal ausführlich:

            ---Bild zum Browser schicken---
            #!perl

            $bilddatei = 'd:/bilder/ahorn.jpg';
            $teilbildgroesse = 1024;    
            open(BILD, $bilddatei);

            Den Header senden...

            print "Content-type: image/gif\n\n";

            print "Content-type: image/jpeg\n\n"; # <- Oder den...

            binmode(BILD); # Hier ist der Knackpunkt!
            binmode(STDOUT);

            while(read(BILD, $teilbild, $teilbildgroesse)) {
            print $teilbild;
            }
            close(BILD);
            ---eof---

            Mit Hilfe der read() Funktion wird das Image also häppchenweise zum Browser geschickt, naja vielleicht klappts damit.

            Viele Grüße, Rolf