Java Image Editor

The Java Image Editor is a simple image editor built using Swing and the filter classes found on this site. Originally written as a test harness for my image processing classes, it's now become a fully fledged application.

Features include:

  • Multiple image layers
  • Brushes: paint, clone, erase etc.
  • Blending modes - add, screen, darken etc.
  • Transformations: scale, rotate, shear, perspective
  • Lots of effects and image-processing operations
  • Reads and writes multiple image formats
  • Extensible via a plugin mechanism

screen shot

You can download a copy of the JAR file here. Macintosh users can use the JAR file, but it is much better to use the Mac OS X download which contains a properly-packaged version which will behave much better on Macintosh systems (e.g. will support drag and drop onto the Dock and application icon):

To run the Image Editor, it should be sufficient to double-click on the file "ImageEditor.jar" on systems which support this, otherwise use the command:

java -jar ImageEditor.jar

or the equivalent for your system.

Macintosh users should double-click on the disk image and drag the application into their Applications folder, or run it directly from the disk image if wished.

The Macintosh version uses the excellent Quaqua look and feel. This enables me to get rid of the horrible MDI interface in the Mac. On other platforms you will have to continue to endure MDI for the moment.

If you run the editor as an applet in your browser, you won't be able to do much with it due to security considerations. You won't be able to open or save images. However, you can create new images and paint on them and generally get the feel for how it works. If you wanted to deploy the editor as an applet, you'd need to provide ways of getting images into and out of the editor, either by signing the applet or by adding commands to get and put images over the Web connection. This can easily be done by writing plugins.

One more thing: The default Java heap size is too small to allow the editor to open large images or create many layers without running out of memory. The only around this is to increase the available memory on the command line, for example:

java -jar ImageEditor.jar -Xmx1024m


There is some very sparse documentation for the Image Editor. One day there will be more, but don't hold your breath.


The image editor has a plugin mechanism which allows extra filters, tools, menu items and file formats to be added. At present the following are available:

If you want to add your own plugin filters, here's how to do it.

Any questions? Mail me at: jerry at