In this article, I will talk you through how to read JPEG 2000 images into a BufferedImage in Java. We also have a related article covering how to write JPEG 2000 files in Java.
ImageIO provides support for JPEG 2000 using JJ2000 (originally written around 2000). It produces poor results with a lot of our sample images (black spots on white images) and is not complete. It only supports the jpx subtype. So we felt it was time to add a modern implementation to JDeli with full support for the format.
How to read a JPEG 2000 image in Java with ImageIO
- Create a File, InputStream, or URL pointing to the raw JPEG 2000 image.
- ImageIO will now be able to read a JPEG 2000 file into a BufferedImage.
and the Java code to read JPEG 2000 with ImageIO…
File file = new File("/path/to/image.jpx");
BufferedImage image = ImageIO.read(file);
How to read a JPEG 2000 image in Java with JDeli
- Add JDeli to your class or module path. (download the trial jar).
- Create a File, InputStream pointing to the raw JPEG 2000 image. You can also use a byte[] containing the image data.
- Read the JPEG 2000 image into a BufferedImage
and the Java code to read JPEG 2000 with JDeli…
File file = new File("/path/to/image.jpx");
BufferedImage image = JDeli.read(file);
Are you a Java Developer working with Image files?
// Read an image
BufferedImage bufferedImage = JDeli.read(dicomImageFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(heicImageFile);
// Write an image
JDeli.write(bufferedImage, "heic", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpegImageFile);
// Write an image
JDeli.write(bufferedImage, "jpeg", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpeg2000ImageFile);
// Write an image
JDeli.write(bufferedImage, "jpx", outputStreamOrFile);
// Write an image
JDeli.write(bufferedImage, "pdf", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(pngImageFile);
// Write an image
JDeli.write(bufferedImage, "png", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(tiffImageFile);
// Write an image
JDeli.write(bufferedImage, "tiff", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(webpImageFile);
// Write an image
JDeli.write(bufferedImage, "webp", outputStreamOrFile);
Why do developers choose JDeli over free alternatives?
- Works with newer image formats such as AVIF, HEIC, JPEG XL, WEBP
- Better support than alternatives for JPEG, PNG, TIFF.
- Prevent JVM crashes caused by native code in other image libraries
- Better performance than other popular Java image libraries