What is the JDeli Image Library?
In order to handle complex image data in PDF files, we needed Java solutions to handle lots of different image formats. We started using ImageIO and JAI but found them less than ideal and we did not see a satisfactory alternative. So we wrote our own solutions.
We initially created the JDeli Image Library because potential clients were asking for access to this Java Image code to solve their image problems. Our vision for JDeli is to offer a viable commercial alternative to Image IO and other open source and commercial libraries for reading and writing image formats in Java focusing on high level of support for images and wide range.
What does JDeli NOT offer?
Let us start with what JDeli is not offering….
- It is NOT free. – You need to pay to use JDeli because we want to be able to develop and expand JDeli (and that costs time and money). If you want a free library, there are lots out there.
- It is NOT Open Source. – If you need source code access, we offer licenses with source code access so it is an option.
- It is not an image manipulation library. – It has some utility classes for down-sampling but it does not currently offer features like clipping, image manipulation, cropping, etc. ImageMagick or the Apache libraries are a better fit for this use case.
What JDeli excels at is…
Making it easy to read and write many image formats (including their more obscure versions) into Java and saving out of Java. Here are some of the highlights (and problems/limitations with ImageIO which we have fixed).
- Ability to set Compression limit. For example : best compression or fast compression
- Indexed PNG files for dramatically smaller files compared to non-indexed or imageIO created PNG files.
- JDeli supports non-RGB image types (CMYK, YCCK, etc) and support for 12 bit images which is part of a specification and unsupported by ImageIO.
- ImageIO does not support this method at all and JAI have a limited support and very slow;
- JDeli is almost 2 times faster than JAI with large scale image support
- JDeli fills in all the missing possible Tiff versions out there and properly handles corner cases. ImageIO and JAI have a limited support in images with different bit level (example 11, 12, 13)
- JDeli makes it easy to write out multi-Tiff files and you do not have to keep all the images in memory.
- JDeli support floating point based images;
Bmp, Psd, Webp, Sgi, Dicom
- JDeli supports all these image formats out of the box. Gif is currently in development. So these formats can now easily be accessed from Java.
- QualityScaler for high speed convolution image scaling and thumbnails in java with lanczos filter
How to use JDeli
JDeli is designed to provide a simple set of Classes to read and write a Java BufferedImage. So in many instances, you can switch from ImageIO to JDeli by changing one line of you code. There is a full set javadoc on the website.
Future plans for JDeli Image library
JDeli has a long wishlist of features we intend to add including more image formats. We also intend to start to add some image manipulation tools. If you have any requests, we are open to suggestions.
How to try JDeli
There is a trial download of the JDeli image library.
If you would like to read more about JDeli, how it compares to other libraries such as ImageIO and JAI, and some useful ‘how-to’ articles be sure to check out our Series Index.