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?
Update
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
Are you a Developer working with PDF files?
Our developers guide contains a large number of technical posts to help you understand the PDF file Format.
Do you need to solve any of these problems?
Display PDF documents in a Web app |
Use PDF Forms in a web browser |
Convert PDF Documents to an image |
Work with PDF Documents in Java |
We have given up on JAI. Not only are we concerned about the lack of development, but we have shifted to 64-bit Windows and 64-bit Java 1.6. Unfortunately, JAI’s jndi and dll’s are all 32-bit, and with Java 1.6 you can not use 32-bit jndi with a 64-bit Java.
Agree with you Ron!
We have been working on implementing what we need without JAI.
Regards,
MArk