CGI(perl)でのGIF出力について

[上に] [前に] [次に]
鈴木真 1999/10/10(日) 16:53:44
perlでGIFを表示するプログラムを作っているのですが、

print "Content-type: image/gif\n\n";
open(IN, "image.gif");
print while (<IN>);
close(IN);

と書くと大抵のGIFは大丈夫なのですが、
一部のじふだとうまく表示されなかったり、
リロードするたびに色調が変わったりするのですが、
回避する方法はないのでしょうか?
出力した画像と元の画像をバイナリで比べてみると
1バイトだけ違ってて「???」な状態です。
環境はWin95とApacheですけどバイナリモードで読みこんでも同じでした。

ジェンウェイ大佐 1999/10/11(月) 00:09:08
http://www.tohoho-web.com/wwwperl1.htm#Binary

あたりが参考になるのでは? あなたが示したプログラムでは
バイナリ読み込みをしていないからではないでしょうか?
バイナリモードで読み込んでも・・・ というのが引っかかりますが。

moci [E-Mail] 1999/10/11(月) 03:24:08
バイナリでくらべた時に、どう違っていたのかは分かるのですよね。
それで読み込みをバイナリにしてみたのでは?
でしたら、書き出しもバイナリにしてみてはいかがでしょうか。

とほほ 1999/10/12(火) 21:22:44
読み込み(IN)と書き込み(STDOUT)をバイナリモードにする、つまり、
具体的に言うと、open(IN, ...)の次の行に、以下の2行を追加して
みてください。

binmode(IN);
binmode(STDOUT);

鈴木真 1999/10/13(水) 15:38:27
[[解決]]
解決致しました。
書き出しもバイナリでしてやらないといけなかったんですね。
回答してくれた方に感謝!

[上に] [前に] [次に]