This page collects plugins I've written for the image processing application ImageJ. While ImageJ isn't Photoshop, it's quite a capable program, and thanks to a macro recording facility and a powerful Java API, is easy to extend. Being in the public domain, it's also free, and bugs are generally fixed quickly. These plugins extend ImageJ in some more or less useful, or plain fun way. The central place to look for more plugins is part of the ImageJ web site.

If any of my software has been helpful to you or your company, and you feel like expressing your gratitude beyond saying Thank you (which is also appreciated), please note that I have an Amazon Wish List containing several inexpensive items, or you can contribute directly via PayPal.

  Animated_PNG_Writer, 6/25/08

  • The WikiPedia:APNG (animated PNG) format is a variant of PNG that supports animation, much like animated GIFs extend the GIF format. But they also support other PNG features like transparency and 24 bit colors, making them an attractive option for higher quality animations. Most browsers (except Edge) support APNG; the other ones fall back to displaying a static first image of the animation.

  ColorPicker, 3/20/18

  • This is a replacement for Imagej's built-in class of the same name. It adds the capability to assign names to particular colors, and access them quickly via a popup menu. To use it, download the source code, replace the existing class of the same name in the ij.plugins.frame package with it, and rebuild ImageJ with ant build. Then, with your favorite color selected, type in a name for it and select the Add menu. Remove colors by selecting them in the menu, and then selecting Delete.

  Expression, 3/16/18

  • Expression performs image arithmetic, somewhat like the Process / Image Calculator ... menu does, except that it works on single images, and the user can specify the exact formula to be applied to each pixel. Confused yet? The interesting part is that, in calculating each pixel, you can work with the previous intensity of the pixel (and even its individual red, green and blue components in case of a color image). In addition you can take into account the x and y position of the pixel within the image, as well as image dimensions. Really confused now? :) Just give it a try, the plugin ships with a number of predefined formulas which you can select, and then look at the result and study the formulas. The plugin can create beautiful images, and supports fractal calculations as well as scientific applications. Here is a page with example images of many of the predefined settings in action.

  HPGL Reader, 3/4/06

  • HPGL Reader is not a filter, but an import plugin, which acquires an image from an WikiPedia:HPGL file. Never heard of it? Then you most likely never had access to a plotter. The format is past its prime, and it's a vector format to begin with, while the ImageJ world is largely raster-oriented.

  OpenGLExample, 3/14/09

  • These two plugins show how to use OpenGL graphics in an ImageJ plugin, particularly how to create WikiPedia:OpenGL graphics, and how to copy image data between OpenGL images and ImageJ images. They use the open source library JOGL, which is available for Mac OS X, Windows, Solaris and Linux, and is the standard Java binding to OpenGL.

  Pixellate a.k.a Witness Protection, 3/5/04

  • Pixellate was inspired by the announcement of the of a now defunct iMovie plugin of the same name. It transforms an image -or a selected part of it- just like it would be shown on TV, when the face of someone is obscured to protect them. I haven't seen the iMovie plugin in action, but it cried out for an ImageJ version. Here is an example.

  Seam Carving, 2/11/08

  • WikiPedia:Seam_carving (a.k.a content-aware image resizing) is an image manipulation technique for resizing images by removing image content that contributes little to image appearance. Thus more image features are preserved compared to cropping or scaling. I can't do it justice here, but you can find a paper describing it and an amazing video (that you should watch even if you have no further interest in this subject) at This plugin puts an ImageJ interface on top of Mathias Lux' seam carving code.

  Warp, 1/20/04

  • Warp is definitely not a scientific enhancement to ImageJ, but a fun one. It lets you distort an image by drawing straight lines on top of it, along which the image contents will be warped. This is an adaptation of the AlexWarp applet (which can now be found at WarpApplet), which I first discovered during Campaign 2000, when it presented images of the two candidates side by side, and allowed you to give free reign to your feelings about them in a creative way. Here an example.


  • This plugin has been retired because of a limitation of the GIF encoder. You should use the Gif_Stack_Writer plugin instead, which does not have this problem.
  • This export plugin saves a stack of images as an animated GIF. It lets the user set the transparent color, the time delay between adjacent images and the number of times the animation should loop. Ben Norman's GIFUtils library is used to encode the images. (The name was inspired by the Animated_Gif_Reader plugin, which came out around the same time, and performs the opposite action - it creates ImageJ stacks from animated GIFs.)


  • This plugin has been retired, because -starting with ImageJ 1.34- the code has been integrated into ImageJ's Open menu command. ImageJ now handles all PxM variants internally, and you should use the builtin menu instead of this plugin.
  • PxM_Reader is another import plugin. It reads the PBM (bitmap), PGM (graymap) and PPM (pixmap, aka color) image formats. Like HPGL they're obsolete for all practical purposes, but can occasionally be found in old files.

CodeSnippets CategoryJava