请问怎样用Perl获取远程图片的信息呢?

mylove0623 2008-08-05 11:53:09
请问怎样用Perl获取远程图片的信息呢?
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mylove0623 2008-08-05
  • 打赏
  • 举报
回复
没高手么?????
mylove0623 2008-08-05
  • 打赏
  • 举报
回复
宽度和高度
mylove0623 2008-08-05
  • 打赏
  • 举报
回复
忘记说了。我获取远程图片的有可能是php生成的图片。
mylove0623 2008-08-05
  • 打赏
  • 举报
回复
我明天测下盐水小鱼大哥的好使不。刚学perl。如果这个都不好使的话。我对perl就失去信心了。php都可以 getimagesize()
明天加100啊。放心啊。
mylove0623 2008-08-05
  • 打赏
  • 举报
回复
杀虫剂大哥。你说的
你试试这个模块Image::Size

my ($width, $height, $format) = ImageSize($filePath);
这个我试了。他只对存在本地服务器的图片好使。对于远程的。完全没用。
bigman_lfj 2008-08-05
  • 打赏
  • 举报
回复
use Image::Magick;
$image - Image::Magick->new;
($iwidth,$iheight,$isize,$iformat) = $image->Ping("..........your imgage file");
print "ping...".$iWidth;

----------------------------------------------
$image->Get("width","height")方法也是可以得到的。
wx红杉树 2008-08-05
  • 打赏
  • 举报
回复
你试试这个模块Image::Size

my ($width, $height, $format) = ImageSize($filePath);
wx红杉树 2008-08-05
  • 打赏
  • 举报
回复
要在 Perl 中获取图象文件的尺寸需要以二进制方式打开文件,然后读取尺寸数据并转换为整数;文件大小可以使用 Perl 标准功能完成。下面的代码只需调用 PictureSize 并使用文件路径参数就可以以数组的方式返回图象的宽度、高度和文件大小(注意: 这段程序只支持 JPG 和 GIF 文件):
---------------------------------------------------------------------
sub PictureSize {
my $gw = 0;
my $gh = 0;
my $gs = 0;
my $sl;
my $filepath = $_[0];

$gs = &FileSize($filepath);

if ($filepath eq '') {
return (0, 0, $gs);
}

open(FH, $filepath) || return (0, 0, $gs);
binmode FH;
read(FH, $buff, 3);
if ($buff eq 'GIF') { # Gif
read(FH, $buff, 3);
read(FH, $buff, 2);
$gw = &Str2Int($buff, 1);
read(FH, $buff, 2);
$gh = &Str2Int($buff, 1);
} elsif ($buff eq "\xff\xd8\xff") { # Jpg
read(FH, $buff, 1);
read(FH, $buff, 2);
$sl = &Str2Int($buff, 0);
read(FH, $buff, $sl);
read(FH, $buff, 2);
$sl = &Str2Int($buff, 0);
read(FH, $buff, $sl);
read(FH, $buff, 3);
read(FH, $buff, 2);
$gh = &Str2Int($buff, 0);
read(FH, $buff, 2);
$gw = &Str2Int($buff, 0);
}
close(FH);

return ($gw, $gh, $gs);
}

sub Str2Int {
my $str = $_[0];
my $mode = $_[1];
my $intnum;
if ($mode == 0) {
$intnum = ord(substr($str, 0, 1)) * 256 + ord(substr($str, 1, 1));
} else {
$intnum = ord(substr($str, 1, 1)) * 256 + ord(substr($str, 0, 1));
}
return $intnum;
}

sub FileSize {
return (-s $_[0]);
}
---------------------------------------------------------------------
调用方式为:
($picwidth, $picheight, $picsize) = &PictureSize($Pathname);
这里的 $Pathname 是文件路径。

---------------------------------------------------------------------
mylove0623 2008-08-05
  • 打赏
  • 举报
回复
高手来啊。我明天加到100分。
mylove0623 2008-08-05
  • 打赏
  • 举报
回复
我不想下载下来啊。
fnever 2008-08-05
  • 打赏
  • 举报
回复
下载下来再处理不就好了么,要看图片的具体格式的

2,204

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧