Forum Webscript.Ru
Программирование => Perl => Тема начата: Dinara от 26 Мая 2002, 17:27:06
-
Вывожу картинку таким кодом:
print "Content-Type: image/gif\\n\\n";
binmode(STDOUT);
open(stPICTURE, $picture);
print ;
close(stPICTURE);
В результате показывается только маленький кусочек картинки, только совсем мелкие картинки выводятся полностью.
Никто не знает, как лечить?
-
Сорри, поторопилась :)
Нашла решение.
open(stPICTURE, $picture);
binmode(stPICTURE);
$pic = "";
while (read(stPICTURE, $buff, 1)) {
$pic .= $buff;
}
close stPICTURE;
binmode(STDOUT);
print $pic;
-
Кстати когда закачаешь на сервер, если только он не под Вынь:) всё как рукой снимет и будет работать:
Судя по всему нужно перед принт вставить строчку
binmode stPICTURE;
Показывая Винде что файл двоичный, а то ведь она идёт до ближаёшего ctrl-z (он же символ конца файла, он же код 26 (а может и другой, но вроде этот) а потом плюёт на это дело (вывод файла), для неё файл уже закончился:-))).
Наверное в этом трабл.
-
Не! :) Трабл был в размере буфера. Я так и подумала - экспериментировала с разными размерами картинок - выводилось разное количество пиксел-строк :)