Grafikausgabe klappt nicht
LEX
- perl
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
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
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
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
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
Hi LEX und Robert,
nochmal ausführlich:
---Bild zum Browser schicken---
#!perl
$bilddatei = 'd:/bilder/ahorn.jpg';
$teilbildgroesse = 1024;
open(BILD, $bilddatei);
print "Content-type: image/gif\n\n";
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