Генерирую изображение в PERL. Почему оно искажается? Можно ли как-то исправить?
Код:
Появляется сильно искаженное изображение... Где ошибка?
#!/usr/bin/perl -w
use CGI;
$cgi = new CGI;
$file = $ENV{'DOCUMENT_ROOT'}."/m.jpg";
unless (-e $file)
{
print $cgi->header();
print "NE";
exit;
}
open(IMAGE, $file);
$size = -s $file;
read IMAGE, $data, $size;
close(IMAGE);
print $cgi->header(-type => 'image/jpg');
print $data;
Появляется сильно искаженное изображение... Где ошибка?
Мы платим до 300 руб за каждую тысячу уникальных поисковых переходов на Ваш вопрос или ответ Подробнее
1 ОТВЕТ |
PERL - язык для работы с текстами. Поэтому он отдает файлы в ASCII режиме (по умолчанию), а не в BINARY, как следовало бы отдавать изображения. Поэтому, после открытия файла, надо перевести его в бинарный режим:
binmode IMAGE;
ПОХОЖИЕ ВОПРОСЫ |