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. |