我有一个Perl脚本会抛出以下消息:
无法通过包“GD :: Image”找到对象方法“newFromPng” ../script/Perl/gestion-redimensionnement-images.pl第271行。
这是脚本的第271行:
my $gd_original =
( lc($extension) eq '.png' ) ? GD::Image->newFromPng($fichier_image)
: ( lc($extension) eq '.gif' ) ? GD::Image->newFromGif($fichier_image)
: ( $extension =~ m{\.jpe?g$}i ) ? GD::Image->newFromJpeg($fichier_image)
: GD::Image->new($fichier_image);
当我使用cpan
检查GD
是否已正确安装时,我得到:
pan[1]> install GD
CPAN: Storable loaded ok (v2.34)
Reading '/Users/romain/.cpan/Metadata'
Database was generated on Mon, 13 Jan 2014 18:53:02 GMT
CPAN: Module::CoreList loaded ok (v2.76)
GD is up to date (2.50).
我的配置有问题吗?
我在Mavericks的Mac下运行Perl v5.16。
答案 0 :(得分:2)
我怀疑你没有安装libpng。如果底层图像库存在且可用,GD将仅提供newFromPng(),newFromJpeg()等方法。您可以使用can()
use GD;
my $gd = GD::Image->new();
my $ok = $gd->can('png') ? 'Yes' : 'No';
print "$ok\n";
您可以使用MacPorts安装libpng,也可以从源手动安装。
答案 1 :(得分:0)
您是否忘记使用GD模块?
use GD;
尝试一个简单的小例子(使用你自己的png文件):
use GD;
my $fichier_image = 'my.png';
my $gd_original = GD::Image->newFromPng($fichier_image);