Java JPEG Reader
The JDeli Java image library includes a JPEG Reader to read JPEG images into Java. The JPEG Decoder is written in 100% Java and provides JPEG support with no dependencies.
Key information:
- 100% Java solution. No dlls or dependencies on native code
- ColorSpace: GrayScale, RGB, CMYK, YCCK images
- Bits Per Sample: 8, 12-bit precision
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 JPEG File Reader
BufferedImage image = JDeli.read(jpegImageFile);
or
JpegDecoder decoder = new JpegDecoder();
BufferedImage image = decoder.read(jpegData);
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 | 0.143 | ± 0.001 |
| JDeli | 0.162 | ± 0.001 |
Tested on 2021 14inch M1 MacBook Pro using JDK 18.0.1.1
Frequently asked questions
Does JDeli produce better JPEG reading and decoding than Java ImageIO?
Yes. While ImageIO can read JPEG, JDeli provides better compatibility, more consistent output across platforms, and access to format-specific decoding options.
Does reading or decoding JPEG 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 JPEG?
JDeli can read and decode JPEG from a File, InputStream, or byte array.