Showing posts with label adobe. Show all posts
Showing posts with label adobe. Show all posts

Monday, February 04, 2008

Google Code - Part 1

As I've mentioned earlier, I'm using Google Code to host the apselex project - an Adobe Photoshop Elements Explorer.

It is very easy to get started, and quite easy to use.

But, one thing was eluding me - how to use images in the wiki. I know - the help page has some examples, but as with all these things, the devil is in the details.
  • the image needs to be an external link
  • as such it needs to be hosted, and available
  • a "makes sense" approach is to store images in the wiki directory itself
  • and then simply point to the image with a link like this:

    [http://apselex.googlecode.com/svn/wiki/ScreenshotExplorer.png]
Simple!

Naturally, using Eclipse, it was pretty straight forward to put some images in this directory. The approach I took was:
  • create a separate Eclipse project - mine was called ApselWiki
  • share this as a Team project (using subversion), and use the wiki as the URL

    https://apselex.googlecode.com/svn/wiki

    Note, that the wiki directory is outside the /trunk directory. That is, it's in the root of your project.
  • You can then simple paste new images into the Eclipse project - and also edit your wiki pages if you really like.
  • Then simply perform a "Team -> Synchronize"
Easy!

Tuesday, January 29, 2008

Photoshop Elements - Explorer Part 2

Due to overwhelming demand (well, at least 1 person :-)), I've put up my initial code for exploring the Photoshop Elements database. For a small bit of background info, see my previous post.

I thought I'd give google code a try for hosting - as such, the project is located here.

Drop me a line in the comments if you're interested in participating.

Friday, January 04, 2008

Photoshop Elements - Migrating to Version 6

Well, I thought my migration to Adobe Photoshop Elements Version 6 was complete - and I was very happy with the way things had gone.

Until, I needed to print one of my pre-migration dated images.

I was greeted the following, rather unfriendly dialog, and could not print.

Wtf? I was concerned to say the least.

I re-traced some of my steps ...
  • newly edited photos would print ok
  • new (Version 6) photos were ok
  • old (pre-version 6) photos were ok
  • old, edited photos were NOT ok
I smelled a rat with the migration process for edited images. The edited images had seemed to be imported as version sets correctly. I did a bit more checking. The following grab shows a typical (albeit) sample image:



Note that the original image in the Version set is selected, and the Size attributes are displayed correctly in the Properties window.

Now, have a look at this next one, with the newer image from the Version set selected:



I've highlighted the problem area - the image width and height are missing. This was pointing to all not being well with the edited image.

I waded through the information on the Adobe support site here, I couldn't find any exact match. I even resorted to the forums, which are extremely painful to use - and still no match.

So, I thought - there's nothing for it but to submit a bug report. This itself was fairly painless, but disappointing:
  1. no reference number, or tracking information was returned.
  2. no acknowledgment that a bug had even been reported (via email, for example).
However, I was determined not to be beaten by this. I went back to the support documents, and found that a number of suggested fixes finished with the recommendation to use the "Update Thumbnail" command. What the? I didn't think that this would be appropriate for me - since my thumbnails looked fine, thank you very much.

Well, I thought - what could possibly go wrong ?

I'm pleased to report that - it actually fixed the problem!! Woo hoo. I was a little surprised, but relieved to say the least. A few years of editing had not been lost.

I was wondering why I needed to do this though - I used the supported Catalog conversion process. If PSE needed my thumbnails to be updated, I would have preferred them to be done as part of the migration process.

However, this exercise did open my eyes to the strange support mechanisms provided by Adobe. When the product itself sports a gleaming new interface, it's a little sad that the support facilities are somewhat lacking - and in case of those forums, downright primitive.

If any Adobe guys are around - I guess you can close my bug report too :-)

Friday, November 02, 2007

Photoshop Elements - Explorer

As a way of investigating the internals of the Adobe Photoshop Elements (PSE) meta tags, I thought I'd whip up a little Eclipse plug-in to do some experimentation.

The primary purpose was to provide a means of exporting my metadata. I do a little editing within PSE, but my largest investment is in the metadata attached to (almost) every photo.

I realize that you can (and should) backup your PSE catalog using the supplied tools, but this approach also provides a degree of independence should I ever wish to decamp to another product.

Plug-in Structure

The following diagram shows the plug-in dependency hierarchy. The diagram was produced using the brilliant Plug-in Dependency Visualization Tool from Ian Bull, also described here on his blog.



As can be seen from the hierarchy, I make use of a number of libraries, packaged as plug-ins.
  • XOM - to provide XML support. See here for more details on XOM.
  • SQLite JDBC driver. See here for more details.
I had a few choices about how I was going to deploy it - workbench, RCP or even scriptable via Eclipse Monkey ... but I thought the workbench plug-in would be the simplest thing to get started.

Workbench Integration

Since I was aiming for the workbench, it made sense to provide some integration with the functionality you get for free! The two most obvious points are:
  • workbench properties
  • an image viewer
It's very easy to integrate with the workbench Properties View. This is very well documented - in particular in this article.

I have also encountered a great image viewer, courtesy of Wayne Beaton - see here for more details.

The great thing about making use of these functions is that they simply require an adapter to the required class to exploit the functionality.
  • the Properties View needs an adapter to an IPropertySource implementation
  • the Image View plug-in requires an adapter to an ImageProvider implementation.
To keep things simple, I initially coded up the getAdapter code directly into the model - but, with a teeny bit of thought - and prompting from Wayne's latest "adapters" articles here - it made sense to extract them into an AdapterFactory. And after doing this, it made sense to extract the whole model to it's own plug-in.

Plug-in Functionality

It's pretty basic - a simple PSE Explorer View, which lists the contents of the catalog, and two menu options:
  • one to load an existing PSE catalog file (SQLite database)
  • one to export the loaded PSE catalog as an XML Document.
The following screen shot shows the plug-in in action - with the PSE Explorer view on the top half of the screen, and the properties and Image View on the bottom.



The plug-in functionality is initiated by the two command handlers (corresponding to the menu items) - that is, import and export.

The import function is facilitated by a simple DataProvider class. This provides the means of accessing the SQLite database and populating the model used by the viewer. The SQL used is similar to my earlier experiments.

The export function merely provides an XML transformer for the populated model. The results of the export looks like this:



Summary

This is just a starting point, but it has provided a easy way for exploring the PSE metadata. With a bit more polish, I'll see if I can release some of the code.

Wednesday, October 24, 2007

Photoshop Elements - User Interface

In my recent experimentation with Photoshop Elements 6 (PSE6), I was quite surprised by some of the user interface (UI) techniques employed.

For example, with the "Albums" and "Keyword Tags" palettes, there is a "New" button, as shown below - the bright green cross -



When you hover, the tooltip text shows as below:


But what if you wanted to collapse or expand the tree? There doesn't seem to be any actions available for that. Let's click the "New" button - which is a pull-down, and see what happens ...



Aaahhh. There they are. At the bottom of the "New" menu.

what the?

It seems that it's basically overloading that first tool bar button. I'm not sure why. For fear of cluttering up the tool bar perhaps.

An alternative would be to make the buttons explicit - perhaps like the Eclipse style ones shown here (as the boxed "-" and "+"):



A little more thought needs to go into style guides for these interfaces I think.

Tuesday, October 23, 2007

Photoshop Elements - Smart Albums

My investigations are continuing with Adobe Photoshop Elements 6 (PSE6). And this post looks at the new feature called Smart Albums.

They are based on the same concept as the Smart Playlist in iTunes. That is, they are defined searches - rather than specific, static items - so that the Album contents always stays current.

It is a good feature to include, and in general seems well done. But, I've encountered a few usability issues which seem important.

1. User Interface to Modify a Smart Album

This seems strange. The problem is that there are two different "edit" operations - the most obvious seems to be to select the Smart Album, and then the Edit toolbar icon. In this case, I've selected the album called "Smart Taxis".



Indeed, the hover text indicates "Edit Smart Taxis Album". When you select this action, you get a dialog which only allows you to change the name! It conveniently tells you about the criteria though.


To modify the search criteria, you instead need to follow this process:
  1. Active the smart album, by selecting it from the Album palette
  2. From the organizer, select the Options pulldown
  3. Then select "Modify Search Details"
  4. You then, finally, see the dialog - which is entitled "Find by Details (Metadata)"
  5. You then still need to make the changes you need, and if you want to change that same album, select the check box and type your original name, and press "Search" ??

  6. A helpful dialog then tells you that this album exists, and would you like to replace it.
OMG! In doing this post, I've just realized that it doesn't replace your album - PSE6 adds another album - with the same name.

To be slightly fair, the dialog text doesn't actually say it's going to replace that album - it says "Click OK to create a Smart Album with this name anyway". I guess it could be seen as helping to provide some form of version control. But still, it doesn't seem terribly obvious.

What's going on here?

It seems that there is a basic disconnect between the two halves of the screen - the Organizer on the left - with the find bar showing Search Criteria - and the Album palette on the right - which talks in Albums.

2. Smart Album search criteria

Unfortunately, some of the search criteria available seems a little restrictive - that is, a bit lacking in flexibility. Some examples may help to illustrate:

  1. Can't use "not Include" with the "Keyword Tags" search - only Include:



  2. Can't use Smart Albums as the argument with the "Albums" search. The only albums presented in the list are standard (static) Albums.



    This would allow for a tree structured, or nested style search. This is also something which iTunes seems to manage ok.
I'm sure there are others, but these are the ones which seem to leap out.

Conclusion

Smart Albums is a good start - but it would nice to see them just a little bit smarter ... and easier to use.

Friday, October 12, 2007

Photoshop Elements

Well, I finally took the plunge - and upgraded my Photoshop Elements 3.0 (and Photoshop Album) to the new Photoshop Elements 6.0 (PSE6).

A few things caused the change:
  • the old version was starting to creak a little bit
  • lots of annoying little bits -like no alternative date format
  • the ability to use star ratings
  • the shiny new interface looked cool!
The upgrade went really well. As other people have noticed - you need to then manually go and convert your old catalogs using the "Catalog Manager" (File -> Catalogs ...).

One disappointment is that there (still) does not seem to be an adequate interface to Flickr. What is with the whole Adobe Partner Services thing? As such, in the past I've whipped up some Java to scan my PSE catalog (stored in an Access/Jet style) database, and reconcile that against my Flickr account - using the flickrj project as the framework.

One pleasant surprise is that the framework used to store the database has been updated. It now uses something called SQLite. This looks really interesting, as it is a well featured SQL database, which stores it's entire contents in a single file. (Apparently, Lightroom also uses SQLite, but I think a different schema.)

Naturally, I needed to check out the schema. Two ways spring to mind:
  1. Native access - via the SQLite facilities
  2. JDBC access.
A few little notes on each follow below.

Native SQLite Access
  1. download the executable from here. This gives you a zip. Simply extract the contents - a single .exe to a location of your choice.
  2. locate your PSE catalog location - an easy way is to use the Help -> System Info ... menu option.
  3. use the command sqlite3 filename
This gives you a simple command line interface. The commands are all "." prefixed - for example, use ".help" to get started.

JDBC

There is a JDBC interface available. I decided to try the one available here. It was a simple matter of:
  1. create an Eclipse project (or IDE of choice)
  2. add the jar file to the class path
  3. use the sample code to start exploring
It does seem very straightforward. I'll post some code, etc after a bit more digging.