In this article I will talk you through on how to read JPEG2000 Image into a BufferedImage using ImageIO/JAI and our new JDeli Image Library. So lets start from the basics, what is JPEG2000?
What is JPEG2000?
JPEG2000 is an image decoding standard that was originally created as an update of the well known JPEG Format which was introduced in the year 2000 by the
“Joint Photographic Experts Group” committee. It uses lossy compression image mode that is based on discrete wavelet transformation.
JPEG2000 compared to JPEG offers:
- A better higher compression performance,
- Outputs of multiple resolutions,
- The option for both lossless and lossy compression,
- Improved noise resilience,
- Flexibility in file formats,
- Bit depth support,
- advance support for transparency and alpha planes.
The filename extensions commonly associated with JPEG 2000 are:
Example Java code to read a JPEG2000 image in Java:
Here is some sample code using ImageIO/JAI and JDeli. (ImageIO needs JAI installed to support JPEG2000).
– Using JAI/ImageIO
//Read Image from File File myJPegFile=new File("ImageAsJPeg.j2k"); BufferedImage image = ImageIO.read(myJPegFile);
– Using JDeli
Jpeg2000Decoder decoder = new Jpeg2000Decoder(); BufferedImage decodedImage = decoder.read(imageByteData);
Features Included in JDeli Jpeg2000 Decoder:
- Colorspace : Bitlevel, Grayscale, RGB, CMYK and YCCK images
- Bits Per Sample : 1 to 16
- In additionally JDeli offers fastest Jpeg2000 Decoding capability in java
We have also created a useful how to series on how to read and write various Image formats.