Java JPEG2000 Reader
The JDeli Java image library includes a JPEG2000 Reader to read JPEG2000 images into Java. The JPEG2000 Decoder is written in 100% Java and provides JPEG2000 support with no dependencies.
What is supported
The JDeli JPEG2000 reader supports the following features:
| Feature | Supported |
|---|---|
| Alpha transparency | Yes |
| Colour optimisation | Yes |
| BufferedImage input | Yes |
| Compression - 8bit Quantised | Yes |
| Compression - ZLIB | Yes |
| Metadata | EXIF |
| Takes file input | Yes |
| Takes InputStream input | Yes |
| Takes byte[] input | Yes |
| Pure Java implementation | Yes |
Quick start:
Add JDeli to your project via Maven or Gradle, or see using JDeli with Java modules.
JDeli can automatically detect the file type and will use the JPEG2000 File Reader
BufferedImage image = JDeli.read(jpeg2000ImageFile);
or
Jpeg2000Decoder decoder = new Jpeg2000Decoder();
BufferedImage image = decoder.read(jpeg2000Data);
Performance comparisons:
These figures were generated using jmh (as documented on our blog) with a standard set of images (also documented). They should be easy to replicate if you wish to validate, the code is on GitHub.
The higher the number, the better.
Mode: Throughput Count: 25 Units: ops/s
| Benchmark | Score | Error |
|---|---|---|
| ImageIO/JAI | 48.971 | ± 0.098 |
| JDeli | 123.793 | ± 0.135 |
Frequently asked questions
Can Java read or decode JPEG2000 files without external libraries?
No. Java’s built-in ImageIO does not support reading or decoding JPEG2000 files. JDeli provides a pure-Java JPEG2000 decoder with no dependencies required.
Does reading or decoding JPEG2000 in Java with JDeli require additional libraries?
No. JDeli is a 100% Java library with no dependencies. It runs on any platform where the JVM runs with no additional installation.
What input types does JDeli support for reading JPEG2000?
JDeli can read and decode JPEG2000 from a File, InputStream, or byte array.