Ключевые слова:image, size, web, (найти похожие документы)
Date: Tue, 17 Apr 2001 08:39:37 +0000 (UTC)
From: Michael Poliakov <[email protected]>
Newsgroups: fido7.ru.perl
Subject: Как определить размеры картинки
>Да, если уж говоришь "4 байта", мог бы и сказать, как они интерпретируются. В
>смысле - какой именно вызов unpack к ним применять.
Когда-то я делал так, но с некоторыми jpeg'ами она врала:
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);
}
Michael Poliakov