April 10, 2006

Running Photoshop plugins in the GIMP, even under Linux

Author: Nathan Willis

Linux advocates are familiar with the refrain that would-be switchers in the graphic arts have to rely on Adobe Photoshop under Windows because it can do things that the GIMP can't. An important but altogether different hurdle is the installed (and paid-for) base of often expensive third-party Photoshop plugins. But a solution to that problem might be easier than you think.

The key is a piece of software called pspi (for Photoshop Plugin Interface), written by GIMP hacker Tor Lillqvist. It is a GIMP plugin that acts as a bridge between the GIMP and Photoshop plugins; to the Photoshop plugin it looks like a full, running copy of Photoshop. It provides the hooks into the menus and functions of Photoshop that the plugin expects to see, and connects them to the GIMP's extension and menu system.

This software bridge is only possible because Adobe makes a Photoshop Software Development Kit to encourage third-party developers to write plugins, and because most of those plugins are self-contained. In particular, most draw their own user interfaces instead of calling on the native Windows and Mac toolkits. It allows them to be cross-platform, an important cost-saver in the Mac-heavy graphics field.

The downside (as you might expect) is that many of these in-house-developed UIs are garish, quirky eyesores that violate accepted standards of usability. But that is something you have to live with if you want to make use of some of the latest Photoshop plugins.

pspi on Windows and the licensing dilemma

When Lillqvist first developed pspi in 2001, he did so for the Win32 port of the GIMP. As far back as December 2004, speculation on the gimpwin-users mailing list turned to the possibility of hacking a version of pspi that would run under Linux, calling WINE for the Win32-specific hooks. That approach was working well for Web browsers and media players. Photoshop plugins, like browser plugins and multimedia codecs, are implemented as DLLs. All that was needed was a programmer interested in taking on the challenge, but no one seemed to want to try.

A couple of months ago, pspi came to the forefront again when Lillqvist posted an entry about it on his blog, this time catching the attention of Mukund Sivaraman. He tried compiling pspi for Linux, and it worked.

The technical challenge was overcome, but there is still one catch. To compile pspi, you must possess Adobe's Photoshop SDK. Up to and including Photoshop 6, Adobe gave away the SDK both on the Web and bundled with boxed copies of Photoshop. But starting with Photoshop 7, getting the SDK has required requesting prior approval from Adobe, to be given out on a case-by-case basis. The Photoshop 6 SDK will still work, but its license terms do not allow making copies for redistribution. Therefore anyone interested in compiling pspi needs to acquire the SDK from a legally purchased copy of Photoshop 6 or earlier.

pspi comes to Linux

That obstacle applies only to those who need to compile pspi, though. Once compiled, pspi itself is freely redistributable. Last month, Lillqvist posted an update to his blog linking to downloadable binaries for Windows, SUSE Linux 10, Ubuntu 5.10, and Fedora Core 5.

Linux users can down install pspi and see what all the fuss is about. There are several sources for free and low-cost Photoshop plugins on the Web. As Lillqvist notes, many commercial plugins are available in demo form, and a number of graphic arts magazines give them away on bundled CDs.

In the taxonomy of reasons why some people are reluctant to leave Windows behind and switch to Linux, the ability to run third-party Photoshop plugins ranks fairly low. But professional artists are a trendy bunch, so when they hit the tipping point a lot of mainstreamers will take notice. Plus, it's always good to scratch another barrier off the list.

Click Here!