我試圖建立一個圖片庫。我使用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