Digital Outback Photo
- Photography using Digital SLRs

 

Workflow Techniques #097

Extending Photoshop

essay by Uwe Steinmueller

 
 
 
 

Extending Photoshop

Photoshop is a very feature rich application (for some there are even too many features). No application can do everything or should even try to aim for it. This is why Photoshop was from the beginning designed with an architecture that allows new tools to be added to Photoshop. The key feature we are talking about are Photoshop plugins. Today we have at least the following four types of Extensions:

• Filter plugins (found under the Filter menu)
• Automation plugins (found under File->Automate menu)
• Automation scripts (found also under File->Automate menu)
• Actions (not covered in this article, see our book DOP2000)

All of these different ways to add functionality have their own set of requirements and limitations.
Some people complain that very often the set of useful plugins can easily cost even more than Photoshop itself. Think of Photoshop as a very powerful base module that allows you to add new rich functionality. Just find out with the filter trial versions whether you really need this filter and only buy if it is worth the money (some can save you a lot of work). Don’t be upset if better tools may replace this valuable plugin shortly after you bought it. In the past and also today plugins complement Photoshop and make Photoshop even more useful. Photoshop would not be this world class imaging tool without its plugin/automation and scripting interfaces.

Here are some areas where we use filter plugins:

• Image distortions (lens or perspective)
• B&W conversion
• Local contrast
• Sharpening
• Noise removal
• Adding Grain
• Image frames
• Effect filters
• Upsizing
• Exposure merging and tone mapping
• Many more specialized filters

Some of the filters can be replaced by complex Photoshop actions but still the filters are a more convenient way to get the right effect. Other filters provide algorithms that cannot be done with Photoshop tools and are for this reason especially interesting.

Of course also new versions of Photoshop have added new tools that compete or even replace some of these commercial plugins. This maybe not good for the business of some of plugin developers but just a normal trend in the evolution of products.

Photoshop added recently these new tools:

• Smart Sharpen
• Reduce Noise
• Lens Correction
• Merge to HDR

We still think that third party tools for noise removal and sharpening are doing quite well competing with the tools now part of Photoshop.

Filter plugins

This is the most common form of plugins. The idea is actually pretty simple. Photoshop provides an plugin SDK/API that allows the plugin to receive the pixels of the current layer, manipulate them in any way they like and then hand back the new modified layer to Photoshop. The main plus of filter plugins is the fact that the creator can use any kind of new algorithm he likes to implement. This means that the most innovative plugins come as filter plugins.

Usually top filter plugins provide the following features:

• Dialog with all the options and sliders
• Work also on 16-bit layers
• Allow up to full screen sized previews

From the aspect of programming filter plugins are also the most complicated to create. These filters have to be programmed in C++ (unfortunately these plugins also have to be done differently for Mac and PC with different compilers). There is a tool called Filtermeister (http://www.filtermeister.com/) that itself is implemented in C++ but features a special scripting language to perform filter operations. Some very powerful commercial filters that use Filtermeister are available on the market. Unfortunately Filtermeister is only available for Windows right now.

Common Issues with filter plugins

As with all aspects of Photoshop memory can always be a problem with larger files. The most flexible way to deal with large images is to process images in smaller tiles. But this can get quite complex for some more sophisticated imaging algorithms (especially looking up the pixel neighborhood). If you run into trouble with memory for some filter then you should try to change the memory settings in the Photoshop preferences dialog.

Filter Plugins in other imaging applications

Quite a few of the filter plugins can also be used with other imaging applications. This way sometimes users of these applications can do effects which are supported by Photoshop but not in their own application.

Automation plugins

Automation plugins are very different than filter plugins. Automation plugins are much closer to actions because they can only implement operations that can be realized with Photoshop tools. Also these filters have to be programmed in C++ (unfortunately also these plugins also have to be done differently for Mac and PC with different compilers).

So why not just use actions?

Automation plugins allow own dialogs so that the user can enter own parameters and the automation plugins can perform calculation or conditional steps based on parameters and image data (e.g. size). This way they allow much more flexible computing than just simple linear actions.

All our own plugins are automation plugins. We call these plugins from own actions and some cases even call actions from the automation plugin. This allows way more flexible operations even if the real pixel manipulation is all based on Photoshop operations. As a plus for the developers it is not trivial to find out what the plugin implements (IP protection). But even if a user finds out the step the use of these steps via an action would be way more tedious because the actions don’t allow the following:

• Own dialog
• Enter parameters
• Operations based on data
• Conditional processing

Automation Scripts

Also a more and more popular way to automate operations is to use the Photoshop scripting engine/API.
There are several scripting language supported:

• Apple script (Mac only)
• VB script (Windows only)
• Javascript (both platforms)

Note: Do not confuse Java with Javascript. Better you think they are very different beasts. Java is a full blown programming language and Javascript a scripting language.

In general one can say that scripts are faster to develop but should only be used on low to medium complex tasks while programming languages like Java can be used for any level of programming (e.g. nobody could write Photoshop in Javascript).

We would recommend to learn Javascript if you want to develop your own automation scripts. There is one downside for developers using scripts. Scripts can be easily read and copied. But some script developers also solved this problem and obfuscate the scripting text.


 

 

This is one of the many techniques we will teach during the 2006 Summit. We will also work with you 1 on 1 and help you with your own images and with how to use this technique, and many others, in your own work. Click here to read a detailed description of the 2006 Digital Fine Art Summit. Joseph Holmes will join the Summit 2006 as a guest instructor means you can ask this world class printing expert directly.

About the Fourth Annual Photography & Fine Art Printing Summit

The 4th Photography & Fine Art Printing Summit will take place November 10th to 13th, 2006, in Page, Arizona. Seats are limited. In addition to studying color management and color spaces, we will also do field photography in stunning locations such as Antelope Canyon, Lake Powell and Horseshoe Bend, as well as study Raw conversion, Photoshop processing, image optimization, printing. We will also conduct print reviews of your work created during the Summit. Find out all the details of this unique learning and photographing opportunity on the 2006 Summit page.

 

 

 
 
 
   

For Comments post in our News Group

© 2000-2007 Digital Outback Photo