#!/usr/bin/perl # # make_index: make an HTML document with a bunch of inline # images on it. # # usage: make_index *.jpg > index.html # # Gerald Oskoboiny, 11 Jan 1999 # Modified by Hugo Haas # # $Id: make_index 2275 2003-09-14 12:15:49Z hugo $ use strict; use Image::Info qw(image_info dim); use POSIX qw(ceil); my $thumb_suffix = "-th"; my $small_suffix = "-sm"; my $med_suffix = "-med"; my $exif_suffix = "-exif"; sub gen_name() { my ($name, $suffix, $type) = @_; $name =~ s/\.[^.]+$/${suffix}.${type}/; return($name); } sub get_dim() { my ($name) = @_; my $info = image_info($name); return(dim($info)); } sub gen_link() { my ($file, $name) = @_; if (! -r $file) { return(''); } my ($w, $h) = &get_dim($file); return ("
  • $name (${w}x${h})
  • \n"); } ############################################################################## my $title = shift; print " Photos: $title

    $title


    "; my @results; foreach my $file (@ARGV) { if ( ! -r $file ) { print STDERR "Can't read $file! skipping it...\n"; next; } my $name = $file; $file =~ s/${thumb_suffix}//; my($w, $h) = &get_dim($name); my $time = $file; my $link = &gen_name($file, $med_suffix, 'jpg'); if ( ! -r $link ) { $link = $file; } $time =~ s%.*(\d\d)_(\d\d)_(\d\d)[^/]*\.jpg$%$1:$2:$3%; my $res = "

    Picture taken at $time

    \n"; my $suffix; $res .= ""; push(@results, $res); } my $i; print "\n"; while (@results) { print "\n"; for ($i = 3; $i > 0; $i--) { print "= 0) { print ">\n"; print shift(@results); } else { print "class='empty'>\n"; } print "\n"; } print "\n"; } print "
    \n"; my $year = (localtime(time()))[5] + 1900; print "

    Last modified: \$Date\$
    Copyright © $year Hugo Haas, <hugo\@larve.net>
    See my public picture page.
    See my picture page (restricted).

    ";