Link

Image processing in Java

JDeli is able to process image files or images in memory. Multiple processing operations can be applied together with the convert or process methods.

Process an image file

JDeli.convert(File inputFile, File outputFile, ImageProcessingOperations operations);

JDeli can also convert between different image file formats at the same time.

View Javadoc on JDeli.convert

Process a BufferedImage

This can be done two ways:

Using the process method in JDeli

image = JDeli.process(ImageProcessingOperations operations, BufferedImage image);

View Javadoc on JDeli.process

or

Using the apply method in ImageProcessingOperations

image = operations.apply(BufferedImage image);

ImageProcessingOperations class

This class provides multiple image processing operations and an interface to add your own custom operations. Multiple operations can be added and will execute in that order.

Create an instance and pass into the JDeli process or convert methods.

Example 1 - Create a set of processing operations

ImageProcessingOperations operations = new ImageProcessingOperations();
operations.scale(1f);
operations.custom(new MyCustomProcess());
operations.rotate(90); //units are degrees

Example 2 - Chain a set of processing operations

ImageProcessingOperations operations = new ImageProcessingOperations()
.scale(1f)
.custom(new MyCustomProcess())
.rotate(90);

Example 3 - undoing and redoing operations

operations.undo(); // remove last operation added
operations.redo(); // re-add last operation removed

Example 4 - Implement a custom operation

private class MyCustomImageOperation implements ImageOperation {

    private Object myArgs;

    public MyCustomImageOperations(Object myArgs) {

        this.myArgs = myArgs;
    }

    @Override
    public BufferedImage apply(BufferedImage image) {

        //process code here
        return image;
    }
}

ImageProcessingOperations operations = 
new ImageProcessingOperations(new MyCustomImageOperation(myArgs));

View Javadoc on process package


Why JDeli?

  • Support image formats such as AVIF, HEIC and JPEG XL (AVIF soon) that are not supported in Java.
  • Process images up to 3x faster than ImageIO and alternative Java image libraries.
  • Prevent JVM crashes caused by native code in other image libraries such as ImageIO.
  • Handle JPEG, PNG, TIFF image file formats fully in Java.
  • Keep your Image files secure as JDeli makes no calls to any external system or third party library.

Start Your Free Trial