A File-Centric Photo Manager?
JeremyDuffy writes "I have a photo project of over 7,000 photos. I want to tag them based on location, time of day, who's in them, etc. Doing this by hand one at a time through the Windows 7 interface in Explorer is practically madness. There has to be a better way. Is there a photo manager that can easily group and manage file tags? And most importantly, something that stores the tag and other data (description etc.) in the file, not just a database? I don't care if the thing has a database, but the data must be in the file so when I upload the files to the Internet, the tags are in place."
Google Picassa is actually quite good at everything you asked for, and, it has face recognition, so once you tag one face, it generally recognises most of the images of the same person for you.
portfolio
http://sourceforge.net/projects/fototagger/
Lightroom is likely more than you need, but Lightroom does this.
I convert my various (nef, cr2) raw files to DNG upon importation to my library, and save metadata to the files themselves, not XML sidecar files.
While Adobe Lightroom will want work with its own database, by always syncing metadata to file you will have a 100% portable set of images.
can't seem to find linux-version
He doesn't want a GPL Linux version because if he uses it, his photos become derivative works and therefore he loses all ownership of his photos, his camera, his computer, and everything that he photographed becomes GPL'd which means, if the guy photographed his girlfriend, all of the FOSS community has to sleep with her.
Mods, this is a fight between Trolls, go mod something worthwhile.
I was recently wanting to do something similar. I decided on using the open source Digikam software (which may not be an option for you under Windows), because it has powerful photo management functionality, but also because it stores tags and more all as XMP data directly within my JPEG file.
http://en.wikipedia.org/wiki/Extensible_Metadata_Platform
There is work being done to do face recognition to tag people in photos, one of the things that is taking most of the time for me.
My application was a custom photo-blog, with some neat tag-based features (like "show me the pictures taken at this person's house that have this oher person it them").
So, I tag them in digikam, do cropping and comments, and then save the image. I then wrote some Python programs to check this data for consistency, and to load the data into a database for the web server. The web server also has the ability to edit tags and comments, so I then have code to, once reviewed, write these changes out to the XMP meta-data.
But, the photos themselves are the authoritative source for this information. If I lost the database, no problem. The photos are the authoritative source for all that information.
Oh, I forgot to mention that one of the tools in the upload chain is to get rid of albums and instead encode it in the file with a tag called something like "Blog/Group/$UUID_STRING". It also saves off the "album thumbnail" in a similar way ("Blog/Group/IsAlbumThumbnail").
It's worked extremely well.
I use the command-line "exiv2" program to export and import the XMP data as XML, then I process it (the parts mentioned above) as XML.
Picasa doesn't store its tagging info locally in each directory; this information is put in the "Program Files"
I'm often surprised by how few people understand how Picasa really works, as this is not the case.
Any potentially 'destructive' changes to a photo are stored in a picasa.ini file in each folder. These changes include rotations, cropping, sharpen, etc. When you view a photo in picasa, it displays with all these changes applied. You can undo a change at any time. Changes are NOT applied to the file on disk until you press 'save'.
To be clear, there is no magic, hidden, or proprietary database; it's just a simple per-directory picasa.ini file. As for backups, if you've backed up the directory including the picasa.ini file, then any non-saved changes will be backed up.
Non-destructive changes, such as captions or tags, are applied immediately to the photo. Again, to be clear, these are applied directly to the photo and can be read by any other photo tool that can read exif data.
The one exception to this is the recently introduced face tagging feature. Unfortunately, Google really messed up with their implementation of this feature. Facial tags are stored in a combination of the picasa.ini file & a central database. I've found the implementation to be quite poor, and I would not recommend using this feature.