Since buying my first digital camera I've enjoyed snapping and storing digital pictures. The hard part has always been keeping track of them. Photoshop Album eliminates much of the drudgery of organizing a photo collection.
I've been impressed by Adobe Photoshop Album since the day I bought it. Its simplicity and power make organizing, finding, and sharing photos a snap, but I've always wondered, "What happens when I find something better?"
The tags feature is by far the most valuable feature of the product. A tag is simply a label that you can apply to an image or a video. You enter a piece of text to identify a person, place, or event and drag the tag to an image. The tag can be applied to as many images as you like. To find all images labeled with a specific tag you just click the checkbox next to the tag and you're presented with all the items labeled with that tag. It's great!
In addition to the tags feature you can view images in a calendar view, create slide shows to share with friends, and fix simple flaws such as brightness and red eye. I won't turn this into a full review, but you can find a detailed list of features at the Adobe website
As you can tell, I'm pleased with the product, but I'm concerned about the portability of my data. It's great that the product collects all these tags and organizes my files, but what happens when I want to use the data for some other purpose? What if I want to extract all the tags and use them for indexing into my photo collection from some custom software. Until today I wasn't sure how to do it.
I ran a few quick Google searches this afternoon and found my answer. Photoshop Album stores all its data in ".psa" files. I tried viewing the files in JEdit, but discovered that they're binary. My Google searches revealed that these binaries are actually Microsoft Access databases.
Upon learning this I was disappointed for a moment. I'm firmly in the Java camp and digging into Microsoft Access is not high on my list of things to do. Then I remembered the JDBC-ODBC bridge. Using this JDBC driver I was able to connect to the Photoshop Album access database file, but I wasn't able to query all the database metadata. Specifically, I couldn't get the names of the tables. I was stuck until I had a friend pull up the database in Access and give me a list of tables. Once he gave me a list of tables I was able to run some "select *" queries on them and determine the column names and datatypes.
I haven't had a chance to do an exhaustive search of the database yet, but it looks like I might have what I need. My first project will be to extract a mapping of tags to file names. I'd love to hear from anyone interested in this. If I come up with something useful to others I'll post it here.