Java Advanced Imaging is an optional library produced by Sun to offer additional ‘advanced’ support for building image handling tools in Java. In particular it offers 3 key features:-
1. Improved Performance. As well as having hardware acceleration it was optimised to only perform operations when they were needed.
2. Better memory usage. JAI offers additional Image types to BufferedImage and the tiled image is able to avoid loading all the image data into memory. If you are dealing with huge images this is a bit advantage.
3. Improved Tiff support. The support for TIFF images is much better in JAI than in ImageIO. Annoyingly the both have their own strengths (the Tiff format is like the PDF not strictly adhered to so you meet loads of ‘odd’ files). It can also create Tiffs containing multiple images.
It looks like JAI is no longer being developed but it does still offer these advantages. We use it in our PDF library to improve support for TIFF files. What do you use it for?
We have now completely replaced out usage of JAI with out own image library. JDeli offers a range of advantages over JAI and alternatives, including:
- prevents heap related JVM crashes
- implements unsupported image formats
- reduce output file size
- improve read/write performance
- supports threading
- superior image scaling algorithms