我试图建立一个图片库。我使用Perl来获取目录中的图像列表并显示它们。这些图像都是不同的高度和宽度。该脚本将获取图像名称,查找每个图像的宽度和高度,并将其显示在页面上,以及页面的其余HTML部分。我的图像是1.jpg,2.jpg,3.jpg ... 15(现在,许多更多将在稍后添加)。Perl图片库问题
我的问题是当我需要脚本来生成图像名称,它停止获取图像的尺寸。如果我对图像进行了严格编码,它可以正常工作并告诉我尺寸。
这是我有什么(我知道这可能是粗糙...)
#!/usr/bin/perl
use Image::Magick;
my $magick = Image::Magick->new;
opendir(DIR, "./images/");
@images = readdir(DIR);
close(DIR);
print "Content-type: text/html\n\n";
foreach $file (@images) {
$magick->Read('./images/$file');
my $width = $magick->Get('width');
my $height = $magick->Get('height');
print "<img src=\"images/$file\" width=\"$width\" height=\"$height\">\n";
}
如果我改变$magick->Read('./images/$file');
到$magick->Read('./images/1.jpg');
它的工作原理。当然,它会显示1.jpg 15次,但它可以显示宽度和高度。任何想法,为什么这是?我假设我错过了一些东西,但是我一整天都在努力。
谢谢。
创建一个新的空目录,并调用'它readdir'。结果你可能会感到惊讶。 'mkdir foo && perl -wE'opendir my $ dh,“foo”或者死亡$!说readdir $ dh''输出'..'和'.'你可能不想把它们当作图像。 – ThisSuitIsBlackNot 2015-01-26 20:21:55
另外,你应该添加'use strict;使用警告;'到您编写的每个Perl脚本的顶部,因为它可以帮助捕获很多常见错误(尽管在这种情况下它不会有所帮助)。 – ThisSuitIsBlackNot 2015-01-26 20:27:41
对不起,perl,不是PERL。我知道它输出..和。但我想我以后可以解决这个问题。 – Squalle 2015-01-26 21:37:07