Link

Java JPEG Writer

JDeli includes a JPEG Writer to write JPEG files in Java. The JPEG Encoder is written in 100% Java with no dependencies.

Key information:

  • 100% Java solution. No dlls or dependencies on native code
  • Fast and easy to use
  • Supports quality settings

Quick start or to replace in existing code using ImageIO:

JDeli.write(myBufferedImage, "jpg", outputStreamOrFile);

or

byte[] outputData = JDeli.write(myBufferedImage, "jpg");

New method for quick and simple usage

JDeli.write(myBufferedImage, OutputFormat.JPEG, outputStreamOrFile)

OutputFormat allows setting of any supported Image Format

For complete control of output:

final JpegEncoderOptions options = new JpegEncoderOptions();

//set any options in options instance - examples below
options.setQuality(100);//0-100

//write out
JDeli.write(myBufferedImage, options, outputStreamOrFile);

JpegEncoderOptions allows setting of specific options.

Various image processing operations can be conducted on the image, detailed documentation can be found here.

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.

Benchmark Mode Cnt Score Error Units
JPEG.ImageIO thrpt 25 1.806 ± 0.007 ops/s
JPEG.JDeli thrpt 25 4.013 ± 0.025 ops/s

Tested on 2020 13inch M1 MacBook Pro using JDK 18.0.1.1