Programming Photoshop Plugins

ADVERTISING

Finding resources that explain how to program a Photoshop plugin is a extremely difficult task. Why? Just because there is little information on the web. You may ask yourself "Is that possible?"

Well, most people agree that creating an Adobe Photoshop plugin is a gold mine business due to the popularity of this software. I don’t know if that is still true, but that was true not so long ago.

Anyway, no matter the reason, information on this subject is scarce and that’s the reason why I wrote this article as a good starting point. Everybody will find something useful in this article. Those with a great idea of a ultra-cool-never-before-created plugin, but with no programming knowledge will be the most benefited of all. You will find useful resources that can save you endless hours of research. And programmers will have the chance to have an overview of different Photoshop plugins programming environments and tools.

It is my intention to keep this article up to date. Feel free to send me any corrections, updates or additions so I can consider them for publishing.

What involves programming a Photoshop Plugin?

If you are an advanced programmer, you may find this list a bit basic except, perhaps, for the commercialization part. But if you are a novice programmer, a technically advanced or curious mind, or in charge of a Photoshop plugin development project, then the following list will give you an insight of what is needed.

  • 1 .: Theory:

    » A basic to intermediate knowledge about how bitmap graphics work and a bit of color theory.

    » A basic knowledge of most common computer graphics algorithms.

    » Knowledge of commercial and shareware Photoshop Plugins available

    » Knowledge about Adobe Photoshop software and its plugins capabilities

    » Lots of research time to invest
  • 2 .: Development:

    » For full featured plugins, C++ is a must. Metrowerks for Mac and Unix. Visual Studio for Windows.

    » Some alternate solutions can be found for C and Delphi

    » Filter Forge: Visual filter development framework (sort of).

    » Some interesting solutions can be created using scripting languages.

    » Various plugin testing configurations.
  • 3.: Distribution:

    » Knowledge of Photoshop plugins installation

    » Insights of creating a Plugin installer

    » Demos, trials, copy protection and other distribution strategies
  • 4.: Commercialization:

    » Payment processing
    » Electronic and physical distribution

    » Retail services
    » Marketing and promotion
    » Affiliate program

1 .: Graphics Programming Theory and Algorithms

One common mistake is to believe that any experienced programmer can handle the creation of a Photoshop Plugin or any other pixel based graphics application. Sure, you will need some pretty in depth programming knowledge, specially if you go with the Adobe Photoshop SDK solution (more on this later). But without a deep knowledge of computer graphics theory and algorithms, there is no possibility of success.

The amount of information available on this topic is huge and it is beyond the scope of this article to cover it in depth. The best you can do is to decide first the kind of plugin you would like to create. A color correction plugin will use quite different algorithms than a texture generation plugin.

The intention of this list is to mention just a few interesting graphics theory and algorithms resources that can be used in your Photoshop plugin development project.

Perlin Noise Theory and Implementation
Tutorial with pseudo code implementation about Perlin Noise and its use in procedural texture programming.

Renderman Shading Language
This site offers an very well explained introduction to Renderman Shading Language. Very easy to adapt to any other programming language. Learning the insights of this language, will give you the knowledge to create incredible digital textures plugins.

Image Processing Algorithms
An extensive list of image processing and analysis algorithms. If you plan to create a photo manipulation plugin, this list comes in handy.

Computer Graphics Algorithms
This list includes all type of algorithms for computer generated graphics. Suitable for special effects, shading and 3d graphics plugins.

Color Science Theory
Although this list does not include many algorithms, it’s a useful resource to understand in depth how color works. Very technical!

2 .: Photoshop Plugin Development: Frameworks,
Information and Services.

Here we are, this is the most tasty part of this article. This section is the one you’ll be tempted to look first and skip the rest. That’s ok, but please, don’t overlook the other points. A Photoshop Plugin development project requires at least a little knowledge of all the topics mentioned in this article. No matter how technically challenged you are, you should know about programming options and some computer graphics knowledge. The same goes to programmers. A little knowledge of idea generation, marketing and commercialization is useful to start a personal business.

.: Plugin Development Frameworks and tools

» Adobe Photoshop SDK

The Adobe Photoshop SDK is the only way to program full featured Photoshop plugins available. Requires Visual Studio.Net (windows) or Code Warrior (Mac and Linux). Although free, the Adobe Photoshop SDK is available only by request. You may not qualify to gain access to the Photoshop SDK anyway. There is an good post at John Nack’s blog about this. John Nack is Adobe Photoshop Senior Product Manager.

There are almost no resources for the Photoshop SDK. I didn’t take a look at the CS2 SDK, but I often hear from programmers that the information provided is mostly about the API but little or no How To’s.

Newsgroups usually have good information about graphics programming, if you dig through newsgroups like comp.graphics.apps.photoshop, or better, search for Photoshop SDK at Google Groups you will find information about the SDK. Use all your advanced search skills for this!!!

Some years ago, MacTech magazine published a thorough, two part article, about the Photoshop 5.0 SDK: How To Write a Photoshop Plugin Part 1 and Part 2. This old article is, perhaps, the only one on this subject. You should read it, or at least take a look at it, no matter which version of SDK you are using.

Also, it is very useful to take a look at photoshop plugins source code. At Telegraphics’ web site you can find some free plugins along with its source code. The same goes for OpenXR and PanoramaTools.

Last, a 2D Fast Fourier Transform plugin for Adobe Photoshop with source code (plus some simple games, but obviously not for Photoshop).

Since version 7 of the Photoshop SDK there are some restriction in the creation of Photoshop Plugins for third party applications. You can read about it in this post at FIlterForge forums or in this article written by Harald Heim from The Plugin Site. You should check these two sources if you plan to create a plugin that can be hosted on multiple applications other than Photoshop.

.: PROS: You can create ANY Photoshop plugin you want. Your expertise is your limit.

.: CONS: Only for expert C++ programmers. Very little information on the web. You have to subscribe to very expensive support services to receive help. Anyway, always check Adobe’s Photoshop Developer Center page for the latest info on this subject. They are a large company and they usually change the terms.

» Filter Meister

FilterMeister is a plug-in for Photoshop and other compatible graphics programs with an included code editor to create professional plugins which can be distributed on a royalty-free basis.

Although it is not free, it is an inexpensive application. There are lots of plugins created with this tool. Many of them are commercial like the ones found at PowerRetouche, VanDerLee, Richard Rosenman, NameSuppressed, Xero Graphics, Mehdi Plugins, and The Plugin Site to mention a few.

This application is still in Beta phase, but that’s not an issue. Lots of programmers gather at the Yahoo Groups Filter Meister Mailing List and exchange their creations and give support. They are a bunch of cool great guys willing to answer any question related to plugin programming with Filter Meister. This list will be your main source of information for this software.

Nevertheless, there is a lot of information at Filter Meister web site: A code library, a filter gallery, tips and tutorials and Filter Meister documentation.

If you want to know about future releases of this application, there is a recent thread at the Filter Meister Mailing List that speaks about future additions and improvements. It is worth reading it.

.: PROS: Inexpensive even for hobby or personal use. It is perhaps the easiest and fastest way to create moderately complex plugins. Lots of support from the friendly creators and a users group. Lots of examples at the web site. Ideal solution for color correction or image filtering plugins.

.: CONS: Documentation is not that complete. Not capable of creating full featured plugins with user driven tools, but thats more a lack of features than a drawback.

» Filter Forge

This is a newcomer and it is simply amazing. The best is that you don’t need to know how to program at all. Filter Forge is a visual developing tool based on pre-build components that you have to connect forming a path that leads to a specific result which can be a texture or a image filter.

Filter Forge can be an excellent prototyping tool. It allows to focus on the algorithm and eliminates the need to code all the necessities first (rendering code etc etc). Plus, it already has many well-known image processing algorithms implemented as components.

There is one drawback: You can’t create standalone plugins. Instead you create image filters or texture generators that run inside Filter Forge. But the results are so stunning that you won’t care about that.

One of the reasons why Filter Forge doesn’t create standlone 8bf filters is that it uses HDRI images licensed from Sachform for lighting, and their agreement with them does not permit embedding these HDRIs into stand-alone filters. Read an earlier discussion on this topic

This software has two main work areas: The main window, where you run your filters, and the Visual node editor, where you create your filters and the interface controls.

The program is in a Beta phase, but you wouldn’t tell that. It is more stable than the vast majority of release version applications.

Want more? Well, it is free (in this Beta phase). You are encouraged to become a beta tester and to submit your own filters to a filter library. If you create great and popular filters, you may receive a free copy of this program when it is released.

All the information you need is in Filter Forge web site, including a very active forum with lots of users sharing their filters and working hard to earn their right for a free copy of filter forge.

Being a relatively new software, there is almost none information about it on the web. The program itself is very intuitive. There is an online help and lots of examples to follow. But before you apply for beta testing, you can read a tutorial I’ve written some weeks ago: Creating a Wet and Muddy Rocks Texture With Filter Forge which is, at the time I’m writing this, the only tutorial about Filter Forge on the Web.

.: PROS: Too many to mention here. A true winner.

.: CONS: None that cannot be fixed in the release version. Perhaps it is slow on some complex filters.

 

» Centaurix Photoshop SDK for Delphi

Photoshop SDK for Delphi is a plug-in development solution for Borland Delphi 5, 6, 7 and for Borland C++ Builder 6.

Not much information on the web about this product. It hasn’t been updated since 2004 and it is an incomplete port of the Photoshop SDK. Anyway, if you are programmer, you may want to take a look at it because it is beyond my knowledge the power of this SDK. Judging for the examples on the site, it seems to work great.

There is a support forum where you can have your questions answered.

.: PROS: Inexpensive. You should be able to create full featured plugins, although I’m not quite sure.

.: CONS: Very little information. Not many people using it.

 

» Photoshop Scripting

Since a couple of versions ago, Adobe added scripting capabilities to Photoshop.

It is not directly related to plugin programming, but it is great for automation purposes. You can even create some simple interfaces for your scripts.

There is a lot of information about Photoshop scripting but I will mention only two: PS Scripting forum with an amazing amount of information and a very active community. And the second resource is a tutorial and mini-guide written by Jennifer Apple from Photoshop Support: Working With Photoshop Scripts. This article is so full of information that my friends at Photoshop Support have saved me a lot of hours of research.

.: PROS: Free and easy way to add functionality to Photoshop. Lots of information available.

.: CONS: I’m not sure. I’m not into Photoshop Scripting. Perhaps better interface design capabilities. But don’t consider it like a plugin replacement. Think of it in terms of automation.

» Filter Factory

A minor tool that came with older versions of Adobe Photoshop. If you want to play, this is a good option, but don’t ever think of producing something commercial with it. The FilterFactory documentation is a good reading and some useful algorithms are included.

» Filter Foundry

Mostly the same as Filter Factory. Just a toy but it can be used to test some algorithms.

» Filter Formula

A better version of Filter Factory. In my opinion, still a toy (speaking in commercial terms).

 

.: Plugin Development Services

» Andromeda Software

Creators of renowned Photoshop plugins such as Red Eye Pro, 3DLuxe and Cutline Filter. They now offer plugin development services.

» Digital Element

Creators of Aurora and Verdant, offer custom plugin development.

» Ambient Design

You can contract services from this company that developed nothing less than the KPT5 plugins suite for MetaCreations (now distributed by Corel).

» Filter Meister Mailing List, Elance and Rent a Coder

In the Filter Meister Mailing list your request will be read by many Photoshop plugins programmers. Post a friendly message asking for programming services. Other way to outsource your plugin is to post a project in Elance and Rent a Coder and hire a freelance programmer to do the job for you.

» Adobe Systems Partner Finder

Search Adobe’s database of third-party programmers and consultants worldwide.

3 .: Plugin Distribution

Normally you don’t consider the distribution as a significant part of your plugin development business plan. And that’s ok. There are more difficult tasks to solve in the whole process and you know that eventually, some way or another, the end user will download a demo or a full copy and install it.

Anyway, there are many points to consider in this area, such as the installer itself, or a copy protection scheme. I would like to thank my personal friend Enrique Nieloud from Gertrudis Graphics for the tips he gave me on this subject. By the way, check his great natural painting application GertrudisPro.

There’s a lot to say about installers, but it is all technical stuff. There are two main ways you can go with the installer: Make the user decide where to install the plugin, or simply make the installer install the plugin where it should be. In the latter, your installer application should check for the presence of Adobe Photoshop and, even better, it should check for the presence of Adobe Photoshop plugins compatible hosts such as Paint Shop Pro or similar. In most cases, you have to create a script to tell the installer what to do.

Here’s a list of free and commercial installers you can check:

.: Plugin Installers

» Plugin Setup Tool

Windows Setup tool specifically designed for installing PhotoShop compatible plug-ins. Will recognize all Windows PhotoShop plug-in compatible hosts and allow the user to pick which hosts the plug-in should be installed for. This tool was created by Martjn Van Der Lee, a Photoshop plugins developer.

» Inno Setup

A great windows installer tool. It is freeware and offers more options than most commercial tools. It supports all Windows versions (since 95), support for 64bit applications installations and the full source code is available. Check the extensive features list of Inno Setup.

As a side note, Inno Setup ranks #1 in Google for "Setup Tool" keyword. Way to go!

» InstallShield

For Windows. An expensive (as all commercial installers) professional software setup too. From MacroVision web site: "…FLEX net InstallShield, the industry-standard installation tool, combines power and flexibility with ease-of-use. First-time developers find it easy to create installations, while power users find its depth and flexibility perfect for developing complex software installations…"

This software is strictly for commercial projects (unless you are willing to pay a little fortune for a freeware plugin!) .

» InstallerMaker

For Macintosh. The most popular installer tool for Macintosh by Allume Systems (the creators of Stuffit Deluxe). Although it is an expensive software suited for commercial projects, you can get it for free. Read the Allume Shareware Developers Program, and you will learn not only how to get it for free, but also the opportunity to be included on an Allume commercial release CD.

» Install Anywhere

A commercial multiplatform software setup creation tool. From Macrovision, the creators of InstallShield, this tool will let you create installers for any platform. Yes, it is expensive. It’s for commercial projects, remember?

 

.: Help Files Creators

» Microsoft Help Compilers

These are free applications to create help files for your software.

» QuickHelp

QuickHelp is a development tool for creating and deploying application help to Mac OS 9, Mac OS X, Windows 95 through XP and virtually all Linux distributions.

 

.: Copy Protection Schemes and Demo Strategies

» Copy Protection article from Wikipedia
An extensive article about copy protections schemes. With examples an external links.

» Copy Protection mini guide from Zapper Software

An interesting article about demo software distribution and copy protection schemes. Has a mini guide to other copy protection articles in the web.


» Demoware article from Wikipedia

This article provides information about Demo software distribution and provides links to a comprehensive list of other types of software distribution types.

 

.: Resources for your Programming Business

» Association of Shareware Professionals
ASP is a vibrant organization with hundreds of members around the world working together to improve their businesses and making it easier for computer users to find quality software at reasonable prices.

» Joel On Software

Joel Spolsky is a software developer in New York City who has been writing about software development, management, business, and the Internet since year 2000. An excellent resource.

» Shareware Amateurs vs. Shareware Professionals

A good article written by Steve Pavlina about the difference between a lazy and a proactive Shareware programmer. A good reading.

4 .: Plugin Commercialization and Marketing

You can program for fun or for business. Neither way will work if you don’t have a good idea, product exposure and a good commercialization base. There is an enormous quantity of sites covering this kind of information on the web. This list is a mere starting point on this subject.

.: Generating Your Main Idea

Your unique, never thought before, top selling plugin may have been done already by another company you don’t know. Or worse, it may be released by your competition when you are in the middle of your project. This list will give you a few, very few tips about generating your idea.

  • » First and most important, create something that you know about. For example, a 3D scene creator plugin is quite different from a color correction plugin. The programming is different, the theory is quite different and the target market is VERY different.
  • » Do market research. There are a lot of companies producing Photoshop plugins, but it is not an unattainable number. You can do a research yourself.
    There are some companies that you should check first. AutoFx Software has a big line of special effects, artistic effects and photography plugins. They have created plugins almost for anything you can imagine that is popular. AlienSkin, Andromeda Software, Human Software and XaosTools are other companies with high quality plugins that are worthy to take a look. There are also, some companies that have a small catalog but with unique plugins: AvBros (impressive puzzles pieces and 3D paper folding plugins), DigiElements (Amazing 3D nature effects plugins), Altia (a prototyping plugin. Wow!!) and FilterForge with their absolutely unique Filter Forge plugin which will be the plugin I would take with me in that usual desert island thing.
    Of course, this is a small list. Please, I encourage you to do a market research before committing yourself into a plugin development project. Take a look at the Photoshop Plugins category of The Google Directory as a starting point. Adobe Systems has also a plugin store with a good selection of commercial plugins
  • » After doing all I mentioned above (and more), you may have found that your plugin idea has not been developed yet. Maybe it hasn’t. Maybe it has. Or perhaps it is being created now. But you are sure that you did you best to figure that out. Don’t worry. There are a lot of "duplicate plugins" available. The market is big enough (not huge, though) for that.
    It is not only the plugin idea what sells. You need to sell it better than your competition and if your software brings a better user experience than your competition’s full featured plugin, then chances are that you will sell more.

 

.: Selling your Plugin

» ShareIt and RegNow

Formerly independent companies, now both belong to Digital River’s network. These are among the most popular payment processor and software distribution providers. They host your application and provide marketing solutions too.

» PayPal

Nothing new to add here. The most popular electronic payment processor. Since it is so popular, it increases the chances of an impulse purchase. Many people don’t consider their PayPal balance as money. They are more willing to spend money from their PayPal account than paying with a credit card.

» MoneyBookers

One of the most popular european payment processing provider.

» DigitalRiver

Retail and distribution services. A large network. Perhaps the most popular.

 

.: Promoting your plugin

» The Photoshop Roadmap, The Photoshop Support and The Plugin Site

Eric from The Photoshop Support, and me (from The Photoshop Roadmap, of course) are always willing to promote new Photoshop plugins. Harry from The Plugin Site publishes an excellent newsletter and he is always promoting new plugins there. It is a good source of traffic.

» Shareware Download Directories

Submit your demo to the most popular download directories, such as CNET Download, VersionTracker or TuCows to mention a few.

» AutoFX software, AlienSkin and Adobe Plugins Store
For the last three years or so, AutoFx has been offering product bundles from different companies. If your product is good enough, you may want to contact them. AlienSkin, has a Partner Products section on their site. Contact them to ask for more information. Adobe, as mentioned before, has a third party plugins store. You may want to offer your plugin there.

» Adobe Exchange

Although it is mainly for freeware, you can submit your demo or trial for free to this downloads database hosted by Adobe Systems.

 

.: Affiliate programs

Sharing your revenue with other webmasters is a great way to promote your plugin for free. Well, not exactly for free, but you only pay for performance and receive great exposure. Always try to share a big percentage to entice webmaster to give more exposure to your plugin.

Here are some points you should consider when outlining you affiliate program.

  • » Real time stats. Perhaps it is the most important feature to consider. Webmasters love to follow in real time how well are performing their new ad designs, ad positions and other changes/improvements .
  • » Many payout options. Offer a broad range of payout options for your affiliates. PayPal, direct deposit, checks and wire transfer are the most popular commissions payment options.
  • » Marketing information. Don’t hide information to your affiliates. Offer them the chance of promoting your best selling product. Give them promotional codes. Affiliates should have access to product graphics, text, articles, examples, screen shots and anything you can imagine to help them sell your product. As long as they don’t make an inappropriate use of that info, don’t restrict your affiliates in their promotional efforts.
  • » Fast web site approval . Try to approve your affiliates instantly. If you don’t want that, then try to do it as fast as possible. Currently you have access to many web tools to make an automatic check of the quality of a web site, such as: Google Page Rank, Alexa Rank, Marketleap link pop, Text Links Ads Blog Juice, Del.icio.us bookmarks ranking, and so. It is not perfect, but with a clever usage of those and many other tools you will have an idea of the quality of a web site.

» IDevDirect

This affiliate management system is becoming popular lately. It is inexpensive and it seems to be easy to install.

» Digital River

Digital River offers a network of software and shareware distribution with affiliate management capabilities. ShareIt and RegNow are the most popular.

» Affiliate Software Reviews
and Affiliate and commission management software and services review
These two web sites are filled with information, reviews and comparison charts that will help you to choose the affiliate solution that fits your needs.

Conclusion

We have outlined a four sections list that covers all you have to take into account when starting a Photoshop plugin business. Everybody will find something useful here, depending on which part of the project you are handling. I’ve tried to make this list as complete as possible and will continue updating it when new information and options become available.

Again, I encourage you to help me keep this list current. Leave a comment with your thoughts, corrections. critics (don’t flame, please) and additions.

ADVERTISING