|
|
ru.perl
- RU.PERL ----------------------------------------------------------------------
From : Artem Chuprina 2:5020/400 15 May 2003 15:27:43
To : "Andrei Protasovitski"
Subject : Re: Image::Magick->Write('gif:-')
--------------------------------------------------------------------------------
Здравствуй, Andrei Protasovitski. >> PA> Есть страница с тегом >> PA> <img src="http://www.mycoolsite.com/cgi-bin/IM/image.cgi">, >> PA> и скрипт "/cgi-bin/IM/image.cgi" примерно такого содержания: AP> > >> PA> -=[cut]=- >> PA> #!usr/bin/perl >> PA> use strict; >> PA> use Image::Magick; >> PA> print "Content-type: image/gif\n\n"; >> PA> my $image = new Image::Magick; AP> > >> PA> # тут создается изображение AP> > >> PA> binmode STDOUT; >> PA> $image->Write('gif:-'); >> PA> -=[cut]=- AP> > >> PA> В результате на STDOUT вылазит примерно такая ерунда: >> PA> -=[cut]=- >> PA> GIF89?????,.?????,??????????????????34????5Type: image/gif AP> > AP> > >> PA> -=[cut]=- AP> > >> PA> Как правильно организовать вывод на STDOUT? AP> > AP> > flush сказать перед Write, подозреваю. Есть ненулевая вероятность, AP> что Write AP> > пользуется системный write, в не fwrite. AP> > AP> flush немножко помог: теперь вместо AP> GIF89?????,.?????,??????????????????34????5Type: image/gif AP> дает AP> GIF89?????,.?????,??????????????????34????5Content-Type: image/gif AP> Причем после заголовка (или его обрубка) в конце выдает-таки дважды AP> \n. Глючит только под Win. Может, проблема именно в M$. AP> Интересно, что при отладке пошагово все рисует нормально. А если AP> запкстить одним махом - микширует. Может, в M$ еще и flush не AP> работает. Тогда следующий workaround: замени print на syswrite. Если поможет - значит, предупреждение о том, что не надо смешивать stdio-вывод или как там print и иже с ним реализован (есть еще какой-то вариант) с системным, под виндой более актуально, чем под юниксами. Если нет - надо лезть в потроха Image::Magick (вернее, в потроха libmagick) и смотреть, чем там делается Write. -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/11477fdf5afa5.html, оценка из 5, голосов 10
|