ImageIO is build into the JDK and provides basic image support in Java. JDeli is a commercial image library for Java Developers from IDRsolutions. So why do developers use our library? We get asked this question regularly so here is our reply to this question…
1. JDeli has much better image support for JPEG and JPEG2000 than ImageIO
The original reason we wrote JDeli was our frustration with Java Image support, especially JPEG and JPEG2000 which we use in our JPedal Java PDF library. The support in ImageIO is incomplete, slow, buggy and uses lots of memory. It uses a patched copy of an old Open Source library called JJ2000.
After trying to hack this, we concluded it was time to write a clean, fast, modern Encoder/Decoder for JPEG and JPEG2000.
2. JDeli supports lots of additional image formats
We did the same for TIFF and PNG image file formats. We properly implemented all the TIFF sub-formats and we added options to compress PNG files.
We are currently testing our new release which will add support for Apple’s HEIF image file format.
We found that other developers had the same issues, so we put our code into a separate library (JDeli) for them.
Watch a video on how to Read and Write TIFF files in Java with JDeli
3. JDeli is pure Java and does not run out of native heap
A key reason for several Companies switching to JDeli is because they are using ImageIO on a server shared between multiple clients. Because ImageIO needs native heap, the server would regularly crash even though there was still lots of free Java heap.
As a pure Java solution, JDeli does not bring down the server and all the other users.
Any other advantages?
Because we wrote JDeli to replace ImageIO, we added a set of read and write methods which work exactly as they do with ImageIO. So switching over to JDeli becomes a simple search and replace operation.
We also added some nice new versions so you can gain precise control over the conversion when writing new code. There is also a set of image Processing Operations which can be applied at the same time.
The IDRsolutions website has lots of additional information for developers interested in finding out more about replacing ImageIO with JDeli.
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
Start reading and writing images with one line of code
BufferedImage image = JDeli.read(streamOrFile);
JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)