TwelveMonkeys ImageIO: Additional plug-ins and extensions for Java's ImageIO

View the Project on GitHub haraldk/TwelveMonkeys


Latest release is TwelveMonkeys ImageIO 3.7.0 (April 24th, 2021). Release notes.


TwelveMonkeys ImageIO provides extended image file format support for the Java platform, through plugins for the javax.imageio.* package.

File formats supported

Plugin Format Description Read Write Metadata
Batik SVG Scalable Vector Graphics - -
WMF MS Windows Metafile - -
BMP BMP MS Windows and IBM OS/2 Device Independent Bitmap Native & Standard
CUR MS Windows Cursor Format - -
ICO MS Windows Icon Format -
HDR HDR Radiance High Dynamic Range RGBE Format - Standard
ICNS ICNS Apple Icon Image -
IFF IFF Commodore Amiga/Electronic Arts Interchange File Format Standard
JPEG JPEG Joint Photographers Expert Group Native & Standard
JPEG Lossless - Native & Standard
PCX PCX ZSoft Paintbrush Format - Standard
DCX Multi-page PCX fax document - Standard
PICT PICT Apple QuickTime Picture Format Standard
PNTG Apple MacPaint Picture Format Standard
PNM PAM NetPBM Portable Any Map Standard
PBM NetPBM Portable Bit Map - Standard
PGM NetPBM Portable Grey Map - Standard
PPM NetPBM Portable Pix Map Standard
PFM Portable Float Map - Standard
PSD PSD Adobe Photoshop Document - Native & Standard
PSB Adobe Photoshop Large Document - Native & Standard
SGI SGI Silicon Graphics Image Format - Standard
TGA TGA Truevision TGA Image Format Standard
ThumbsDB Thumbs.db MS Windows Thumbs DB - -
TIFF TIFF Aldus/Adobe Tagged Image File Format Native & Standard
BigTIFF - Native & Standard
WebP WebP Google WebP Format - Standard
XWD XWD X11 Window Dump Format - Standard

Important note on using Batik: Please read The Apache™ XML Graphics Project - Security, and make sure you use version 1.14 or later.

Note that GIF, PNG and WBMP formats are already supported through the ImageIO API, using the JDK standard plugins. For BMP, JPEG, and TIFF formats the TwelveMonkeys plugins provides extended format support and additional features.

Additional features

Adobe Clipping Path support

Read and write Adobe Clipping Paths to/from TIFF, JPEG and PSD files and apply them to images. See Adobe Clipping Path support on the Wiki for more details and example code.

High quality image resampling

High quality image resampling (often referred to as scaling or resizing), using the ResampleOp. Supports various interpolation algorithms, like Lanczos or Mitchell.

Diffusion dither

The library comes with a dithering operation, that can be used to convert BufferedImages to IndexColorModel using Floyd-Steinberg error-diffusion dither.

We did it