For a few customers I needed to do a lot of things with images
- Process million of images - many of them were user-supplied
 - Convert various image formats (JPG, GIF, PNG, TIFF, BMP) into JPEGs
 - Converting PDFs into JPEGs
 - Resample images
 - Handle CMYK image
 - Handle images with alpha-channel
 - Apply image operations such as geyscaling, dithering and sharpening
 - Setting image compression and DPI for storing JPGs
 
In order to get the things done I used various image processing libraries with varying success
- Java ImageIO (comes with the JDK)
 - Java Advanced Imaging (JAI)
 - Apache Commons Imaging (also known as Sanselan)
 - TwelveMonkeys library
 
The problem with all of those libraries is that I had various issues and information how to solve my issues were hard to find on the internet.
Therefore the idea was born to write a paper & sample code covering the image processing libraries I used - maybe you can save a lot of time :-)