A Java library that mimics CSS object-fit image scaling behavior

A Java AWT based image scaling library that is inspired by CSS object-fit scaling modes. This library allows to scale images in cover, contain and fill modes, where cover mode is the noteworthy feature.
Additionally, this library automatically handles image rotation from JPEG Exif data if available.
object-fit is well suited for thumbnail generation but works just as well with larger images.
libraryDependencies += "io.taig" % "object-fit" % "x.y.z"
<dependency>
<groupId>io.taig</groupId>
<artifactId>object-fit</artifactId>
<version>x.y.z</version>
</dependency>
implementation("io.taig:object-fit:x.y.z")
import io.taig.object.fit.ObjectFit;
import java.io.File;
InputStream input = ...
final ObjectFit.Options = ObjectFit.options()
.mode(ObjectFit.Mode.COVER)
.size(500)
.format("jpg");
ObjectFit.toBufferedImage(input, options);
ObjectFit.write(input, options, ...);
ObjectFit.options()
.mode(ObjectFit.Mode.COVER)
.size(250, 150)
.format("webp")
ObjectFit.options()
.mode(ObjectFit.Mode.COVER)
.size(250, 150)
.format("webp")
.scaleUp()
| Input |
Output |
 |
 |
ObjectFit.options()
.mode(ObjectFit.Mode.FILL)
.size(250, 250)
.format("png")
ObjectFit.options()
.mode(ObjectFit.Mode.FILL)
.size(250, 250)
.format("png")
.scaleUp()
| Input |
Output |
 |
 |
ObjectFit.options()
.mode(ObjectFit.Mode.CONTAIN)
.size(250, 250)
.format("jpg")
ObjectFit.options()
.mode(ObjectFit.Mode.CONTAIN)
.size(400, 500)
.format("jpg")
.scaleUp()