Perlで画像のサイズ取得する方法
URL指定で画像サイズの取得が出来ません。
何方かご教授お願いします。
悲しいことにレンタルサーバーにはimage::magickがインストールされていないので使えません。
----perl----
#!/usr/bin/perl
$FileName = "http://i.yimg.jp/images/main11.gif";
( $format, $width, $height ) = &GetImageSize( $FileName );
print "Content-type: text/html\n\n";
print <<"HTML";
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<BR>
$width x $height <br>
<IMG src="$FileName" border="0">
HTML
sub GetImageSize{
my ( $IMG, $in ) = @_;
my ( %SHT, %LNG );
my ( $buf, $mark, $type, $f_size, $width, $height );
my ( $TAG, $TYPE, $COUNT, $V_OFFSET, $PK, $ENTRY, $Exif_IFD );
my ( $endian, $dummy1, $dummy2, $dummy, $EOI, $APP1, $length, $exif );
my ( $format, $offset, $line, $CODE, $jfif );
my @TGA;
my $ntag;
# 定数
$mark = pack("C", 0xff);
%SHT = ( 'II' => 'v', 'MM' => 'n' );
%LNG = ( 'II' => 'V', 'MM' => 'N' );
# 初期値
$endian = '';
$width = -1;
$height = -1;
$format = '';
$Exif_IFD = -1;
if( $in eq '' ){
$in = 'IMG';
}
open( $in, $IMG ) || return( '', -1, -1 );
binmode($in);
seek( $in, 0, 0 );
read( $in, $buf, 6 );
# GIF 形式
if($buf =~ /^GIF/i){
$format = 'GIF';
read( $in, $buf, 2 );
$width = unpack("v*", $buf);
read( $in, $buf, 2);
$height = unpack("v*", $buf);
}
close( $in );
return( $format, $width, $height );
}
exit;
お礼
ご回答ありがとうございます。