AN HTTPD ゲストブック/コメント集(2001年9月5日13:48)


中田昭雄 nakata@st.rim.or.jp 2001/09/06 21:14

やまねこさん、
標準入出力を - でというのは UNIX では普通のことですが、DOS/Windowsでは - というのはそのままファイル名として解釈しそうですね。
ActivePerlのImageMagickモジュールではサポートされていないということかもしれません。
そうかどうかはコマンドライン(DOSプロンプト)で実行してみたらわかるのではないでしょうか(?)。


やまねこ yneko@kt.rim.or.jp 2001/09/05 21:45

中田昭雄 さん、お返事ありがとうございます。。

binmode は、きちんと指定してます。
(もし指定していなかったら、壊れたデータが出てくるだけですよね。。)

ActivePerlのImageMagickモジュールの利用についていろいろ検索してみましたけど、みなさん、ファイルに書き出す用途に使うばかりで、あまり、STDOUTに出力するのってやっていないみたいで・・特に情報見あたりませんでした。

おなじCGIをLINUX+Apache+普通のperl(同じバージョン)の環境で動かすと、だとぜんぜん問題ないようですし。


中田昭雄 nakata@st.rim.or.jp 2001/09/05 21:05

やまねこさん、
そのサンプルコードは Windows で使うことを考えたサンプルですか?
通常 Windows で標準出力に出す時は、

binmode STDOUT;
$img->Write('png:-');

と、まず、標準出力を binmode にするのが普通ですが、そういう話とは違うのでしょうか?


やまねこ yneko@kt.rim.or.jp 2001/09/05 13:48

AnHTTPd 1.35、ActivePerlと組み合わせて、自宅用の開発&デバッグ環境としてとても便利に使わせていただいております。(^^

ところで・・
ImageMagick の Writeメソッドで、ImageMagickのサンプルコードどおりに、
$img->Write('png:-') ;
とやって、標準出力に画像を出力しようとすると、CGIがフリーズしてしまいます。。
また、
$img->Write('jpeg:-') ;
など、別の形式にしようとすると、なにも出力しないで終わってしまうようですし・・
$img->Write('jpeg:output.jpg') ;
のようにファイル出力にするとまったく問題なく機能しますし・・・
標準出力に成功された方、教えてください!