#! c:/perl/bin/perl # # exifview.cgi # # Exif file viewer # # 1.0 : 10/5/05 : Initial revision # # $Id: exifview.cgi,v 1.4 2005/10/05 06:21:27 Hideki Kanayama Exp $ use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); use File::Basename; use Image::ExifTool; my $lastupdatedyear = '2005'; my $version = '1.0'; my $script = basename($0); my $charset = 'Shift_JIS'; my $lang = 0; my $back = "exifview.html"; my $q = new CGI; my $cgierror = $q->cgi_error; &error($cgierror) if ($cgierror); my $mode = $q->param('mode'); &inpage; sub inpage { my $title = ('ExifView'); &htmlhead($title); &inputform; &exifview if ($mode eq 'exifview'); print ""; print (('戻る','Back')[$lang]); print "\n"; &htmltail; } sub inputform { print "
\n"; print "
\n"; print (('画像ファイル', 'Image file')[$lang]); print "

\n"; my $button = $lang ? 'Exifview' : 'Exif表示'; print "\n"; print "\n"; print "

\n"; print "
\n"; } sub htmlhead { my $title = shift; print $q->header(-charset=>"$charset"); print ""; print < $title HEADPRINT } sub htmltail { my $mysite = ('http://www.hidekik.com/','http://www.hidekik.com/en/')[$lang]; print "
$script $version
Copyright(c) $lastupdatedyear, hidekik.com
\n"; print ""; print ""; exit; } sub exifview { my $exifinfo = &getexif; my $exifvalue; print "\n"; foreach (sort keys %$exifinfo) { print "\n"; print "\n"; $exifvalue = ($$exifinfo{$_} !~ /^\s*$/) ? $$exifinfo{$_} : ' '; print "\n"; print "\n"; } print "
$_$exifvalue
\n"; } sub getexif { my $imagename = $q->param('jpegfile'); my $imagehandle = $q->upload('jpegfile'); my $cgierror = $q->cgi_error; &error($cgierror) if (!$imagehandle && $cgierror); my $exiftool = new Image::ExifTool; $exiftool->Options(Unknown => 1); my $info = $exiftool->ImageInfo($imagehandle); close($imagehandle) if defined $imagehandle; return ($info); } sub error { my ($msg) = shift; &htmlhead($msg); print "
$msg
\n"; &htmltail; exit; }