#!/usr/bin/perl # use warnings; use Image::Magick; use File::Glob qw(:globally :nocase); require('webnailer.conf'); my @pix = glob('*.{JPG,GIF,PNG}'); if (!(-e $fs_thumbs_dir) or !(-d $fs_thumbs_dir)) { mkdir $fs_thumbs_dir, 0777; # We need to be able to write our thumbs from the CGI also } foreach my $pic (@pix) { my $image = new Image::Magick; $image->Read($pic); if (!(-e $fs_thumbs_dir."/".$pic)) { print "Creating $fs_thumbs_dir/$pic\n"; $image->Scale(geometry=>$default_width_for_thumbnail."x".$default_height_for_thumbnail); $image->Write("$fs_thumbs_dir/$pic"); } else { $image->Scale(width=>$default_width_for_thumbnail,height=>$default_height_for_thumbnail); $image->Write("$fs_thumbs_dir/$pic.tmp"); $image->Read($fs_thumbs_dir."/".$pic); my ($fwidth,$fheight,$fsize) = $image->[1]->Get('width','height','filesize'); my ($swidth,$sheight,$ssize) = $image->[0]->Get('width','height','filesize'); unlink "$fs_thumbs_dir/$pic.tmp"; undef $image->[1]; if ( ($fwidth != $swidth) or ($fheight != $sheight) or ($fsize != $ssize) ) { print "The thumbnail for $pic is not updated\nUpdating...\n"; unlink "$fs_thumbs_dir/$pic"; $image->Write("$fs_thumbs_dir/$pic"); } else { print "$fs_thumbs_dir/$pic is up to date\n"; } } }