From ed3c0c952190bbaba469c8a56f11120ae6ea97ce Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 7 Jan 2009 18:10:44 -0800 Subject: [PATCH] initial import --- PhotoPackager.pl | 128 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 PhotoPackager.pl diff --git a/PhotoPackager.pl b/PhotoPackager.pl new file mode 100644 index 0000000..3513676 --- /dev/null +++ b/PhotoPackager.pl @@ -0,0 +1,128 @@ +#!/usr/bin/perl + +use File::Basename; +use Image::ExifTool; + +mkdir("/tmp/photopackager", 0777) unless (-d "/tmp/photopackager"); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); +$year = $year+1900; +$mon = $mon+1; +$stamp = "$year"."$mon"."$mday"."$hour"."$min"."$sec"; + +open(LOG, ">/tmp/photopackager/$stamp.log"); + + +$convertpath = $ARGV[0]."/Contents/Resources/convert"; +print LOG "Convert Path: $convertpath\n"; + +$compositepath = $ARGV[0]."/Contents/Resources/composite"; +print LOG "Composite Path: $compositepath\n"; + +$watermarkpath = $ARGV[0]."/Contents/Resources/Watermark.png"; +print LOG "Watermark Path: $watermarkpath\n"; + +#reset the variables +$i = 0; + +#feed the array +foreach (@ARGV) { + if ($_ =~ /.jpg$/i || $_ =~ /.gif$/i || $_ =~ /.jpeg$/i || + $_ =~ /.png$/i || $_ =~ /.tiff$/i || $_ =~ /.tif$/i ) { + ($files[$i], $directory) = fileparse($_); + $i++; + } +} + +$newdir = $directory."temp"; +print LOG "Creating temporary directory ".$newdir."\n"; + +mkdir("$newdir", 0777); + +$num_files = @files; +$total = $num_files; +$xml_file = $directory."temp/photos.xml"; + +print LOG "Opening XML File ".$xml_file."\n"; + +open(XML, ">$xml_file"); +print XML ''."\n"; +print XML ''."\n"; + +print LOG "Processing Photos.\n"; + +## Sort the files in Alphabetical order +print LOG "Sorting photos.\n"; +sort {lc($a) cmp lc($b)} (@files); +#sort(@files); + +foreach $file (sort {lc($a) cmp lc($b) } (@files)) { + + ## Sanitize the filename. + $new_file = $file; + $new_file =~ s/thm_|mid_|\s|%20|\'|\"//gi; + + $reg = $directory."temp/".$new_file; + $mid = $directory."temp/mid_".$new_file; + $thm = $directory."temp/thm_".$new_file; + + $input = $directory.$file; + + print LOG $num_files.". ".$input; + + $i = $total - $num_files; + $num_files--; + + ## Create Commands. + `\"$convertpath\" -resize 1280x1280 \"$input\" \"$reg\"`; print LOG "."; + `\"$compositepath\" -dissolve 15 -gravity \"SouthEast\" \"$watermarkpath\" \"$reg\" \"$reg\"`; print LOG "."; + `\"$convertpath\" -resize 500x500 \"$input\" \"$mid\"`; print LOG "."; + `\"$convertpath\" -quality 50 -resize 150x150 -quality 50 \"$input\" \"$thm\"`; print LOG "."; + ## create XML entry for that file. + print XML ''."\n"; + print XML ''.$new_file.''."\n"; + print XML 'mid_'.$new_file.''."\n"; + print XML 'thm_'.$new_file.''."\n"; + print XML ''.$i.''."\n"; + print XML ''."\n"; + + if ($file =~ /.jpg$/i || $file =~ /.jpeg$/i) { + $exif = new Image::ExifTool; + $exif->ImageInfo($input); + print XML ''.$exif->GetValue("Model").''."\n"; + print XML ''.$exif->GetValue("ExposureCompensation").''."\n"; # Added in later migration + print XML ''.$exif->GetValue("ShutterSpeed").''."\n"; + print XML ''.$exif->GetValue("ApertureValue").''."\n"; + print XML ''.$exif->GetValue("FocalLength").''."\n"; + print XML ''.$exif->GetValue("ISO").''."\n"; + } else { + print XML ''."\n"; + print XML ''."\n"; + print XML ''."\n"; + print XML ''."\n"; + print XML ''."\n"; + } + print XML ''."\n"; print LOG ".\n"; +} + +print XML ''."\n"; + +print LOG "Closing XML.\n"; +close(XML); + +print LOG "Zipping imgpkg.\n"; + +$imgpkg_path = $directory."Photos.imgpkg"; +print LOG "imgpkg path : $imgpkg_path\n"; +$zip_files_path = $directory.'temp/'; +print LOG "zip_files_path : $zip_files_path\n"; + +# `zip -df -j -m -T -9 -q $imgpkg_path $zip_files_path`; +`zip -mT9qj "$imgpkg_path" "$zip_files_path"*`; + +print LOG "Removing temporary directory.\n"; + +rmdir("$newdir"); + +print LOG "imgpkg created successfully.\n"; +print LOG "Image packaging completed.\n";