png unter linux nicht verfügbar?
ritschmanhard
- perl
0 steckl0 ritschmanhard0 steckl
Hallo alle zusammen!
Ich habe folgendes Problem:
1. ich erstelle "on the fly" auf dem Server eine (png) Grafik.
Diese wird mittels perl (queuing) in eine Variable kopiert und dann als binary print "Content-type: image/png\n\n"
zurückgegeben - Sie existiern nicht auf hdd...
Dies wird nun auch angezeigt und unter Windows kann man die Grafik auch speichern:
1. Firefox: „Grafik kopieren“: Die Grafik wird in die Zwischenablage gelegt und kann von dort in jedes Grafikprogramm eingefügt und in einem beliebigen Format des Grafikprogramms gespeichert werden. Hinweis: „Bild speichern unter“ aus dem Kontextmenü schlägt fehl.
2. Internet Explorer: „Kopieren“ wie bei Firefox der Menüpunkt „Grafik kopieren“ nutzbar. Hier funktioniert aber auch die direkte Funktion „Bild speichern unter“.
3. Netscape: „Seite speichern unter“ erlaubt es, die Grafik direkt zu speichern (vgl IE: „Bild speichern unter“). Hinweis: „Grafik speichern unter“ aus dem Kontextmenü schlägt fehl.
Unter Linux geht allerdings nichts mehr...
Wenn ich mit ff: "Grafik speichern unter" wähle, so erhalte ich (als Speicherung):
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="/ugmIF/stylesheets/.xsl"?>
<document>0</document>
Durch debuggen herausgefunden: Dies entspricht der Antwort meines CGI's, wenn es unkommandiert aufgerufen wird, aber laut Debug-Ausgabe wird dies nie versendet...
Wenn ich "alles markieren" & "kopieren" wähle, so steht anschließend im Puffer: Die Grafik "http://localhost/cgi-bin/command.cgi" kann nicht angezeigt werden, weil sie Fehler enthält.
Wähle ich "Seitenquelltext anzeigen", so erhalte ich das PNG als ASCII Text "?PNG(...)END?B'?", der aber nicht weiterverarbeitet werden kann.
Ich hoffe, dass ihr mir aus der Patsche helfen könnt.
Grüsse,
Richard
Hi,
Ich hoffe, dass ihr mir aus der Patsche helfen könnt.
Hab nicht genau verstanden, was nicht klappt, aber wenn ich mit folgendem (recht einfachem) Perl-Script eine Grafik erzeuge klappt es bei mir unter UNIX und ich kann sie mit dem FF downloaden (mit speichern unter ...).
Ist zwar ein gif und kein png, aber sollte ja sonst im Prinzip das gleiche sein.
Vielleicht hilfts dir ja. Wenn nicht einfach ignorieren ;-)
my $imgFile = '/users/http/intranet/knowhow/testDir/IMG/2_sanduhr.gif';
my $imgString = "";
print "Content-Type: image/gif\n\n";
open(GRAFIK,"<$imgFile") || die ("Couldn't open File: $!");
binmode(GRAFIK);
binmode(STDOUT);
while ( my $line = <GRAFIK> )
{
$imgString += $line;
}
print $imgString;
close GRAFIK;
mfG,
steckl
Hi steckl!
my $imgFile = '/users/http/intranet/knowhow/testDir/IMG/2_sanduhr.gif';
open(GRAFIK,"<$imgFile") || die ("Couldn't open File: $!");
Wenn du diese Zeile wie folgt ersetzt, solltest du das gleiche Problem erhalten (und bist damit meinem Problem nahe):
my $imgString = cat /users/http/intranet/knowhow/testDir/IMG/2\_sanduhr.gif
;
Das Problem ist: es gibt auf dem Server kein "2_sanduhr.gif" sondern ein Programm, welches ein GIF erzeugt und in die Queue schreibt...
also:
my $imgString = sudo /usr/local/bin/pngErzeuger --param1="1024" --param2="768" --param3="65536" --param4="apfelmaennchen"
;
Hoffe, jetzt ist es klarer...
Dank,
Richard
Hi,
my $imgFile = '/users/http/intranet/knowhow/testDir/IMG/2_sanduhr.gif';
open(GRAFIK,"<$imgFile") || die ("Couldn't open File: $!");Wenn du diese Zeile wie folgt ersetzt, solltest du das gleiche Problem erhalten (und bist damit meinem Problem nahe):
my $imgString =
cat /users/http/intranet/knowhow/testDir/IMG/2\_sanduhr.gif
;
Kann dein beschriebenes Verhalten (mit cat) nicht reproduzieren. Bei mir klappt es dann immernoch die Grafik mit "Save Image As ..." abzuspeichern.
Das Problem ist: es gibt auf dem Server kein "2_sanduhr.gif" sondern ein Programm, welches ein GIF erzeugt und in die Queue schreibt...
Hast du es testweise mal mit cat versucht, ob das Verhalten dann auch eintritt?
Hoffe, jetzt ist es klarer...
Ja, aber ich kann dir wohl trotzdem nicht helfen. Aber vielleicht hat ja jemand anderes eine Loesung fuer dich.
mfG,
steckl