January 1st, 2008 : 18000 Photos and Counting
I like taking pictures. Too much so. I got my first digital camera in early 2004 and quickly took 1000+ or so photos over the next two years. (I think the actual number is a lot higher, but I can’t be sure anymore.) In 2006 I took 4000 photos and got my first DSLR camera. And in the following 12 months I took roughly 10000 photos.
This left me with about 18000 that were sitting on my computer, largely unsorted and sitting in iPhoto. I did do some work with my photos, but I never deleted any. I have hundreds of bad photos, some a blurry, many have poor composition and I find that there are far too many duplicates.
I needed to organize these photos. I needed to throw out the bad ones. I wanted to go through these photos, one by one, and save the good ones, getting rid of the bad ones, touching up the ones that needed to be touched up.
I had some options. All my photos were in iPhoto, I could take them all, tag them, rate them and set up smart albums and regular albums for them all. I had tried that a bit in the past from time to time and it never seemed worth my time. It was too clunky. It didn’t flow well and I had no starting place. Also, I was never quite sure if iPhoto really deleted my photo or not. Often I would delete a photo from an album only to remember that it was still present in my library. This was not a good solution.
I looked around for other programs that might do the job, but I never found anything that was quite to my satisfaction. So I had one option left: make my own.
So I began to think about the best way to go through and organize pictures. I didn’t want some proprietary format that I would have to keep buying upgrades for as my collection of photos increased or as time went on and it was upgraded. I also wanted to sort my photos by a single keyword, a simple dialog box which asked me for a name and then I could move on to the next photo.
I’m a fan of Applescript, which for those who don’t know is a easy to write programing language made by Apple which works with “many” of their programs. I know some other languages, but I don’t know enough about attaching them to interfaces and I didn’t want to take the time to learn, I just wanted to sort my photos.
My final solution turned out pretty well. I take all the photos I want sorted and dump them in an arbitrary folder. (The folder can’t contain other folders, but I’m still tweaking the code to fix these things.) Then I run my Applescript. It asks me to locate the folder of photos to be sorted and to locate a folder to sort the photos into. (I set up a folder called “Philip’s Photo Library” and sort them in there.) The program then runs through all the photos in the folder of unsorted photos, (opening them in Safari since Preview is not Applescript friendly) and then asks me to type in a name or category for the photo.
This is where things get a little tricky. If the photo I am looking at is a flower, not only do I want the program to move the photo to a folder called “Flower” but I probably also want to change the name of the photo to “Orchid” or whatever flower it happens to be. Whereas if the photo is some random photo from the family reunion I want the program to move the photo into a folder called “Family Reunion” and I don’t really care to name the image file.
To solve this I decided to have two options on my dialog box, one called “Name Image” and the other “Next Please”. If I choose “Name Image” I am presented with a second dialog box to change the image name and if I choose “Next Please” I just move onto the next photo and the picture file is automatically named from the first dialog box.
One of the first things I knew I needed to protect against was duplicate names. (I was fixing this before I had the two dialog box system as described above.) So I had the script count the number of photos already in the folder it was going to put the next picture, add one to the count and then put that number at the end of the name. When I added the second dialog box, I wondered if I should tweak this, since it wasn’t entirely necessary, (maybe use a different command, such as “move without replacing” or something) but I decided that my solution already worked and an arbitrary number at the end of the image name was no big problem to deal with. It would be fairly easy to get rid of later if I wanted too.
Right now I have used my script to sort through almost 1000 photos, I have deleted about 400 of the bad ones, and I now have roughly 10000 left to go through. I feel like this is finally under control. (Or at least able to get under control.)
My next issue is tackling my work flow for working with RAW format photos. I have started taking photos with RAW format which means they need to be processed before most applications can use them. They are also a lot larger in size. So I can’t let them accumulate because I will run out of hard drive space.
Also I need to start up my panoramic work again. A good 3000 of my photos are all for panoramic work. I have 100+ panoramic that I need to splice together. I’m just glad I have tools to help me do that.
Finally, though, I am working on cleaning up and debugging my applescript code so that it is more robust, then I plan to post it up to my website in case anyone else would be interested in this type of photo sorting solution. In the long run I think it would be nice to add an interface to the app, simply because the dialog box always pops up in front of the photo I am trying to look at, but also because I don’t want it to have to rely on Safari. If anyone would be interested in the code, let me know an I can post it up. It’s not as robust as I would like yet, but I’m willing to let it be open sourced. (I should really clean up my Applescript first though.)
Have a happy new year and may your photos all be sorted this year.