getimgsize.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:54:40 2010 from getimgsize.pl 2008/12/08 3.6 KB.

#!/perl -w
# NAME: getimgsize.pl
# AIM: Given a folder, use Imagemagick identify to get the image sizes
# 08/12/2008 - externalise im_get_image_size(file_name)
# 08/07/2008 geoff mclane http://geoffair.net/mperl
use strict;
use warnings;
use File::Basename;
require 'logfile.pl' or die "Unable to load logfile.pl ...\n";
require 'imgsize.pl' or die "Unable to load imgsize.pl ...\n";
# log file stuff
my ($LF);
my $pgmname = $0;
if ($pgmname =~ /\w{1}:\\.*/) {
   my @tmpsp = split(/\\/,$pgmname);
   $pgmname = $tmpsp[-1];
}
my $outfile = "temp.$pgmname.txt";
open_log($outfile);
prt( "$0 ... Hello, World ... ".scalar localtime(time())."\n" );
my $in_folder = '';
# constants
my @imgfiles = qw( .jpg .jpeg .gif .png );
my @fpfolders = qw( _vti_cnf _vti_cnf _private _derived );
# features
my $recursive = 0;
my $outjsarray = 0;
# DEBUG
my $dbg3 = 0;   # show "[$ln]
my $def_dir = 'C:\HOMEPAGE\GA\travel\maroc\jetphoto\128x128';
# program variables
my @imglist = ();    # list of JPEG files - full path name
$in_folder = pop @ARGV;
$in_folder = $def_dir if (!$in_folder || (length($in_folder) == 0));
sub is_fp_folder($) {
   my ($fil) = shift;
   foreach my $fp (@fpfolders) {
      if (lc($fp) eq lc($fil)) {
         return 1;
      }
   }
   return 0;
}
sub is_my_file {
   my ($fil) = shift;
   my ($nm, $dir, $ext) = fileparse( $fil, qr/\.[^.]*/ );
   if (lc($ext) eq '.jpg') {
        return 1;
   }
   return 0;
}
sub get_jpg_file_list {
    my ($inf) = shift;
    if (opendir(DIR, $inf)) {
        my @files = readdir(DIR);
        closedir DIR;
        foreach my $fl (@files) {
            if (($fl eq '.') || ($fl eq '..') ||
                 is_fp_folder($fl) ) {
                next;
            }
            my $ff = $inf . "\\" . $fl;
            if (-d $ff) {
                get_jpg_file_list($ff) if ($recursive);
            } else {
                if (is_my_file($fl)) {
                    push(@imglist, [$ff, $fl, '']);
                }
            }
        }
    } else {
        prt( "ERROR: Failed to open directory [$inf] ...\n" );
    }
}
#sub im_get_image_size {
#   my ($if) = shift;
#   my $is = '';
#   if (open (IDT, "identify \"$if\"|")) {
#      my @arr2 = <IDT>;
#      close IDT;
#      foreach my $ln (@arr2) {
#         chomp $ln;
#         prt( "[$ln]\n" ) if ($dbg3);
#         if (substr($ln,0,length($if)) eq $if) {
#            my $ln2 = substr($ln,length($if));
#            $ln2 =~ s/^\s//;
#            prt( "$ln2\n" ) if ($dbg3);
#            if ($ln2 =~ /\s(\d+x\d+)\s/) {
#               $is = $1;
#            }
#         }
#      }
#   } else {
#      prt( "ERROR: I can't open [$if]\n" );
#   }
#   return $is;
#}
sub process_image_list {
    my $fcnt = scalar @imglist;
    my ($i, $file, $fil, $siz, $msg);
    for ($i = 0; $i < $fcnt; $i++) {
        $file = $imglist[$i][0];
        $fil  = $imglist[$i][1];
        $siz = im_get_image_size($file);
        $imglist[$i][2] = $siz;
        prt( "$siz $fil\n" );
    }
    if ($outjsarray) {
        $msg = '';
        for ($i = 0; $i < $fcnt; $i++) {
            $file = $imglist[$i][0];
            $fil  = $imglist[$i][1];
            $siz  = $imglist[$i][2];
            $msg .= '"'.$fil.'|'.$siz.'",'."\n";
        }
        write2file($msg, 'tempjs.js');
        prt( "Results written to tempjs.js ...\n" );
    }
}
get_jpg_file_list($in_folder);
if (@imglist) {
    prt( "Processing ".scalar @imglist." files from $in_folder ...\n" );
    process_image_list();
} else {
    prt( "Did NOT find any JPG files in $in_folder ...\n" );
}
close_log($outfile,1);
exit(0);
##############################
# eof - getimgsize.pl

index -|- top

checked by tidy  Valid HTML 4.01 Transitional