如何在perl中检索png文件的高度和宽度属性

如何在perl中检索png文件的高度和宽度属性,perl,png,Perl,Png,我有一个png文件的链接,我想检索图像属性,如宽度和高度。 我以前从未这样做过。我已经看了GD,但我找不到任何方法来解决我的问题 下面是一个png文件的示例 http://www.kegg.jp/kegg/pathway/map/map00010.png 使用Image::PNG::Libpng库,您可以: use LWP::Simple; my $image_data = get 'http://www.kegg.jp/kegg/pathway/map/map00010.png'; m

我有一个png文件的链接,我想检索图像属性,如宽度和高度。 我以前从未这样做过。我已经看了GD,但我找不到任何方法来解决我的问题

下面是一个png文件的示例

http://www.kegg.jp/kegg/pathway/map/map00010.png

使用Image::PNG::Libpng库,您可以:

 use LWP::Simple;
 my $image_data = get 'http://www.kegg.jp/kegg/pathway/map/map00010.png';
 my $png = create_read_struct();
 $png->read_from_scalar ($image_data);
 my $IHDR = $png->get_IHDR();
 print "Image size " . $IHDR{'width'} . " x " . $IHDR{'height'} . "\n";
结果是

x is 716, y is 1020

下面是使用
Image::Info
模块的另一个示例:

use LWP::Simple qw(get);
use Image::Info qw(image_info dim);
my $image_URL = "http://www.kegg.jp/kegg/pathway/map/map00010.png";
my $image_data = get($image_URL);
my($x, $y) = dim(image_info(\$image_data));
print "x is $x, y is $y\n"; 

@mpapec我已经更新了这个问题,它说全局符号“%IHDR”需要在tt.pl第8行显式的包名。我已经添加了use strict和use warnings,所以在代码的第6行中,代码不是很干净,我假设您可以找到如何使用Image::PNG::Libpng库并将其导入到代码中。更改
$IHDR{'width'}
$IHDR->{'width'}
,高度相同。
use LWP::Simple qw(get);
use Image::Info qw(image_info dim);
my $image_URL = "http://www.kegg.jp/kegg/pathway/map/map00010.png";
my $image_data = get($image_URL);
my($x, $y) = dim(image_info(\$image_data));
print "x is $x, y is $y\n";