#!/usr/bin/perl # #use warnings; use Image::Magick; use CGI::Pretty(':all'); use File::Glob qw(:globally :nocase); require('webnailer.conf'); my $version = "0.7"; my $i = 0; my @pix = glob("*.{JPG,GIF,PNG}"); my $q = new CGI; my $url = $q->url(-absolute=>'1'); my $width= $q->param('width') || $default_width_for_thumbnail; my $height= $q->param('height') || $default_height_for_thumbnail; my $pix_on_line = $q->param('pix') || $default_pix_on_line; my $offset = $q->param('offset') || 0; my $spec = $q->param('spec') || $pix_on_page; my $pix_on_page = $max_pix_on_page; my $paging = undef; $httpd_thumbs_dir =~ s/\/$//; $fs_thumbs_dir =~ s/\/$//; print header; if (($q->param('action')) && ($q->param('action') eq 'view') && ($q->param('file') > -1)) { my $index = $q->param('file'); my $file = $pix[$index]; my $image = new Image::Magick; $image->Read($file); my ($vheight,$vwidth); my ($owidth,$oheight) = $image->Get('width','height'); if (!(($vheight = $q->param('height')) && ($vwidth = $q->param('width')))) { ($vheight,$vwidth) = ($oheight,$owidth); } if ($file) { print "$file\n"; print "\n"; print "
\n\n"; print "
[$file]\n" if ($spec); print "
[$file]\n" if (!($spec)); print "\n"; print "\n" if ( $index > 0 ); print "\n" if ( $index < $#pix ); print "
prevnext
\n"; print "\n"; print "
\n"; print start_form, "Desired resolution:
", $q->hidden(-name=>'action',-default=>'view'), $q->hidden(-name=>'file',-default=>$file), $q->textfield( -name=>'width', -default=>$owidth, -override=>1, -size=>4, -maxlength=>4), "x", $q->textfield( -name=>'height', -default=>$oheight, -override=>1, -size=>4, -maxlength=>4), br(), submit('view'), end_form; print "Generated by webnailer v $version\n"; print "
\n"; } exit; } else { print "$title\n"; print "\n"; print "\n"; print "\n\n"; print "
\n"; print "$title
\n"; print "
\n"; my $sum = $pix_on_page - 1; if ( $#pix > $sum ) { $paging = 1; if ( $offset > 0 ) { $sum = $offset - $pix_on_page; print "prev $pix_on_page\n"; } } else { $pix_on_page = $#pix + 1; } print "\n"; if ( $paging == 1 ) { $sum = sprintf("%.0f", $#pix / $pix_on_page); for ($i = 0; $i < $sum - 1; $i++) { if ($offset == ($i*$pix_on_page)) { print ($i+1); print " \n"; } else { print "".($i+1)." \n"; } } $sum = $i*$pix_on_page; if (($offset == $sum) && ($spec == ($#pix-$sum+1))) { print ($i+1)." \n"; } else { print "".($i+1)." \n"; } } $i = 0; print "\n"; if ( $paging == 1 ) { $sum = $offset + $pix_on_page; if ( ($sum) < ($#pix - $pix_on_page + 1) ) { print "next $pix_on_page\n"; } elsif ( ($sum) < ($#pix + 1)) { $last = $#pix - $sum + 1; print "last $last\n"; } } print "
\n"; print "
\n"; if ($spec) { $sum = $offset + $spec - 1; } else { $sum = $offset + $pix_on_page - 1; } for ($j = $offset; $j <= $sum; $j++) { my $pic = $pix[$j]; if ($i == $pix_on_line ) { $i = 0; print "\n\n"; } $i++; if (!(-d $fs_thumbs_dir)) { print "\n" if ($spec); print "\n" if ($spec); #print "\n" if (!($spec)); print "\n" if (!($spec)); } print "

[$pic]
\n" if ($spec); print "

[$pic]
\n" if (!($spec)); next; } if (!(-e "$fs_thumbs_dir/$pic")) { my $image = new Image::Magick; $image->Read($pic); $image->Scale(geometry => $width."x".$height); $image->Write("$fs_thumbs_dir/$pic"); } #print "

[$pic]

[$pic]

[$pic]

[$pic]
\n
\n"; print "Generated by webnailer v $version\n"; print "
\n"; }