|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Nikolay Pichtin 2:5056/30 14 Mar 2002 22:15:09 To : Andrew Bobin Subject : Re: jpeg -------------------------------------------------------------------------------- AB> Подскажите ссылочки на модули для работы с jpeg-изображениями. AB> Реально мне нужно лишь две фичи: 1) определять, действительно ли файл AB> является jpeg-ом; 2) определять его ширину и высоту. Поэтому было бы AB> здорово найти простенькую процедурку, которая умеет это делать. Вот, попробуй. Это как-то проскакивало в эхе. sub pix_size { my ($file)=@_; my ($buffer, $width, $height); my $line; $buffer=""; open (FILE, "$file") || return "Can't open file $file: $@"; binmode FILE; if ($file =~ /\.gif$/i) { read(FILE,$buffer,10) || return "Can't read $_"; ($width, $height)=unpack("x6v2",$buffer); } elsif ($file =~ /\.(p?jpe?g?|jf?if)/i) { # это расширения jpeg, pjpeg, jfif, jif, pjpg, jpe которые тоже # встречаются для формата JPEG. # }elsif (/\.jpg/i) { local ($/) ="\xff\xc0"; $line=<FILE>; print "Can't read $_", return unless ($line); read(FILE,$buffer,7) || return "Can't read $_"; ($height, $width)=unpack("x3n2",$buffer); } else { return } return ($width,$height); } -- Hиколай. #=----------------------------------====----------------------------------=# --- * Origin: Где начало того конца, которым оканчивается начало? (2:5056/30) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/18133c911333.html, оценка из 5, голосов 10
|