画像の表示はglobでいいかな。 まずglobで画像を表示させてみると、大きさがまちまちになる。
これをプレビュー画面では同じ大きさに統一したい。 Windowsのexplorerとかpicasaとかのように。 さて、どうやるか。 ちょっと調べるといろいろ出てくる。 いつもはとりあえずなんでもいいから動くものに食いついてきたけど、 今回はどんな方法があるのかを調べて吟味してから使おう。
Image::Magick
GD
ImgResize
画像のサムネイルを作成する。
#!/usr/bin/perl
use strict;
use Image::Magick;
print "Content-type: text/html\n";
print "\n";
my @files = glob "./images/*.png ./images/*.jpg";
foreach (@files){
&MakeThumbnails($_);
}
print '<table border="0" cellspacing="3" cellpadding="3" width=80%><tr>';
my @files = glob "./thumbnails/*.png ./thumbnails/*.jpg";
my $count =0;
foreach (@files){
if($count % 5 <1){
print "</tr><tr>";
}
print "<td><img src=\"";
print $_;
print "\"></td>";
$count++;
}
print '</tr></table>';
sub MakeThumbnails{
my ($name) = @_;
my $dir = './thumbnails';
(my $newname = $name) =~ s/\/images/\/thumbnails/;
my $img = Image::Magick->new;
my $x;
$x = $img->Read($name);
$x = $img->Resize(geometry=>"200x150");
$x = $img->Write($newname);
}
サムネイルの作成と表示を同時に実施している。 表示(リロード)するたびにサムネイルを上書きするのはムダかもしれない。 枚数が増えてくると重くなるから、ページを分けたりする必要もあるだろう。 サムネイルをクリックしたら元画像を表示するとか、コメントをつけたり削除したりできれば、 表示部分はOK。
あとは、アップロード部分か。
perlでimagemagickを使いたくて、cpanでインストールしたらエラーになった。
調べると、yumでいれればうまくいくとのこと。
yum install ImageMagick-perl
なんで・・?