As mentioned in an earlier blog post, we have abandoned JAI completely and mostly replaced ImageIO for image manipulation in our software. We have written our own custom image implementations in pure Java for our usage of JPEG/JPEG2000, TIFF and PNG. We are releasing these classes as JDeli.
JDeli is at least as fast as JAI/ImageIO, and in several cases an order of magnitude faster. It adds new functionality and make better use of memory. It is also much simpler and avoids issues running the old JAI library on servers. We have a long list of ideas for additional features, other formats and further improvements to performance – this is just the first release…
Finally, the rewrite has also allowed us to fix lots of the issues we had with image decoding (those annoying black spots in some JPEG2000 files are all gone).
We will continue to expand and develop the image support and will have regular updates. If you wish to suggest improvements or sponsor enhancements we would be happy to hear from you.
Why use JDeli to read and write Images in Java?
JDeli offers a range of advantages over ImageIO and alternatives, including:
- prevent heap related JVM crashes
- support for additional image formats such as Heic
- reduce output file size
- improve read/write performance
- create smaller files
- control over output
- support threading
- superior image scaling algorithms
We have also created a useful how to series on how to read and write various Image formats.
- How to Write out TIFF in Java
- How to Read TIFF Images in Java
- How to generate smaller PNG files in Java
- How to read JPEG2000 in Java
- How to Write out JPEG Images in Java
- How to write out PNG in Java