imgindex.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:54:42 2010 from imgindex.pl 2008/12/08 4.6 KB.

#!/perl -w
# NAME: imgindex.pl
# AIM: To read a FOLDER, finding all image files, and preparing a SIMPLE table index
# 08/12/2008 - revisited, but has PROBLEM of distorting many images into the FIXED
# display size of 128x128, but does build a SIMPLE index ...
# Also when adding the FULL PATH, leaves 'spaces' in path name, if any.
# Dec 12, 2006 geoff mclane http://geoffair.net/mperl
# Also see genimgindex.pl, which uses Imagemagick, 'identify' app, if installed, to get the image sizes.
use strict;
use warnings;
require 'logfile.pl' or die "Unable to load logfile.pl ...\n";
# log file stuff
my ($LF);
my $outfile = 'temp.'.$0.'.txt';
open_log($outfile);
prt( "$0 ... Hello, World ...\n" );
my $add_full_path = 1;   # add full path to file
my $wrap = 4;
my $addlink = 0;
my $addhdrln = 1; # and following is set of headings
my @headings = qw(Image Image Image Image);
mydie( "ERROR: Heading list NOT equal WRAP size ...\n" ) if ($wrap != scalar @headings);
my $addsize = 1;
my $imgsz = ' width="128" height="128"';
my $in_folder = 'C:\Documents and Settings\Geoff McLane\My Documents\Carla';
my $img_folder = 'enfants';
#my $in_folder = 'C:\Documents and Settings\Geoff McLane\My Documents\Sue';
#my $img_folder = 'pics01';
##my $in_folder = 'C:\HOMEPAGE\Max5\tunisia';
##my $img_folder = '128x128';
##my $img_folder = '640x480';
my $in_dir = $in_folder . '\\' . $img_folder;
my $htm_file = 'tempindex2.htm';
prt ("Processing directory $in_dir ...\n");
opendir( DIR, $in_dir) || mydie( "ERROR: Can NOT open $in_dir ... $! ... aborting ...\n" );
my @files = readdir(DIR);
closedir DIR;
prt ("Found ".scalar @files." items in the directory ...\n");
my $file = '';
my @img_list = ();
foreach $file (@files) {
   if (($file eq '.')||($file eq '..')) {
      next;
   }
   my $ff = $in_dir . '\\' . $file;
   if ( -d $ff ) {
      #prt( "Ignore Directory $file ...\n");
   } else {
      if (is_img_file($file)) {
         push(@img_list, $file);
      }
   }
}
prt ("Found ".scalar @img_list." image files in the directory ...\n");
my $html_bgn = <<EOF;
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="en-gb">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="generator" content="genindex3.pl">
<title>New Index</title>
<style type="text/css">
<!-- /* some style 2006.10.20 */
body {
   margin:0cm 1cm;
   background-image:url('../clds3.jpg');
}
h1{
   background:#efefef;
   border-style:solid;
   border-color:#d9e2e2;
   border-width:1px;
   padding-top:2px;
   padding-bottom:2px;
   padding-left:2px;
   padding-right:2px;
   font-size:200%;
   text-align:center;
}
h2 { font-size: 12pt; font-weight: bold; background-color: #CCCCFF }
.ctr { text-align:center; }
-->
</style>
</head>
<body>
<h1>New Index</h1>
<p class="ctr"><a href="../home2.htm">home</a></p>
<div align="center">
  <center>
  <table border="2" cellpadding="2" bordercolor="#0000FF" id="Num1" summary="Table of Images">
EOF
my $html_end = <<EOF;
  </table>
  </center>
</div>
<p class="ctr"><a href="../home2.htm">home</a></p>
</body>
</html>
EOF
if (@img_list) {
   prt( "Creating [$htm_file] as output ...\n" );
   open OH, ">$htm_file" || mydie( "ERROR: Can NOT create out file $htm_file ... $! ... aborting ...\n");
   my $cnt = 0;
   my $ff = '';
   my $msg = '';
   my $tcnt = 0;
   print OH $html_bgn;
   if ($addhdrln) {
      print OH "<tr>\n";
      $cnt = 0;
      while ($cnt < $wrap) {
         print OH "<th>$headings[$cnt]</th>\n";
         $cnt++;
      }
      print OH "</tr>\n";
   }
   $cnt = 0;
   foreach $file (@img_list) {
      $tcnt++;
      print OH "<tr>\n" if ($cnt == 0);
      if ($add_full_path) {
         $ff = $in_dir . '\\' . $file;
      } else {
         $ff = $img_folder . '\\' . $file;
      }
      $ff = to_web($ff);
      $msg = "<td>";
      $msg .= "<a href=\"$ff\">" if ($addlink);
      $msg .= "<img src=\"$ff\" alt=\"image number $tcnt\"";
      $msg .= $imgsz if ($addsize);
      $msg .= ">";
      $msg .= "</a>" if ($addlink);
      $msg .= "</td>\n";
      print OH $msg;
      $cnt++;
      if ($cnt >= $wrap) {
         print OH "</tr>\n";
         $cnt = 0;
      }
   }
   if ($cnt) {
      while ($cnt < $wrap) {
         $msg = "<td>no image</td>\n";
         print OH $msg;
         $cnt++;
      }
      print OH "</tr>\n";
   }
   print OH $html_end;
   close OH;
   system($htm_file);
}
close_log($outfile,0);
exit(0);
sub is_img_file {
   my ($f) = @_;
   my $ret = 0;
   if ($f =~ /(.*)\.jpg$/i) {
      $ret = 1;
   } elsif ($f =~ /(.*)\.gif$/i) {
      $ret = 1;
   }
   return $ret;
}
sub to_web {
   my ($txt) = shift;
   $txt =~ s/\\/\//g;
   return $txt;
}
# eof - imgindex.pl

index -|- top

checked by tidy  Valid HTML 4.01 Transitional