#------------------------------------------------------------------- # WebGUI is Copyright 2001-2006 Plain Black Corporation. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using # this software. #------------------------------------------------------------------- # http://www.plainblack.com info@plainblack.com #------------------------------------------------------------------- #----------------------------------------- # A little utility to generate WebGUI # thumbnails. #----------------------------------------- use File::stat; use File::Find (); use Image::Magick; use Getopt::Long; use lib "../lib"; use WebGUI::Utility; my $thumbnailSize; my $onlyMissingThumbnails; my $help; my $path; my $ok = GetOptions( 'size=i'=>\$thumbnailSize, 'missing'=>\$onlyMissingThumbnails, 'help'=>\$help, 'path=s'=>\$path ); if ($help || ($path && $ok) ) { print <new; $image->Read($fileName); ($x, $y) = $image->Get('width','height'); $r = $x>$y ? $x / $thumbnailSize : $y / $thumbnailSize; $image->Scale(width=>($x/$r),height=>($y/$r)) if ($r > 0); if (isIn($type, qw(tif tiff bmp))) { $image->Write('thumb-'.$fileName.'.png'); } else { $image->Write($_[1].'/thumb-'.$fileName); } } sub shouldThumbnail { my ($fileName) = @_; my $fileType = getType($fileName); ##I am a thumbnail, skip me return 0 if $fileName =~ m/thumb-/; ##I am not a graphics file, skip me return 0 if !isIn($fileType, qw(jpg jpeg gif png tif tiff bmp)); ##My thumbnail already exists and I was told not to do it again return 0 if ($onlyMissingThumbnails && -e 'thumb-'.$fileName); return 1; } #----------------------------------------- # getType(filename) #----------------------------------------- sub getType { my ($fileName) = @_; my ($extension) = $fileName =~ m/(\w+)$/; return lc($extension); }