thumbnailator is a free, open source photo & video editors project written in Java and released under MIT. It has 5,432 GitHub stars, 791 forks and 55 open issues, and was last pushed 7 months ago. On this registry it ranks #25 of 47 tracked projects in Photo & Video Editors, with 5 head-to-head comparisons available.

What is thumbnailator?

Thumbnailator is a thumbnail generation library for Java that provides a fluent interface for resizing images and writing thumbnails, and it is aimed at Java developers who want high-quality thumbnails without hand-writing Image I/O and Java 2D code.

What it is

Thumbnailator is an open-source Java library released under the MIT License and distributed through Maven Central, and its single purpose is the generation of thumbnails. It ships as a single JAR file with no dependencies on external libraries, which keeps both development and deployment simple. This registry files it under Miscellaneous / Photo & Video Editors, and its topic tags, fluent-interface, image-processing, image-resizer, java and thumbnails, describe the ground it covers.

The concrete problem it solves is the low-level work normally required to make thumbnails in Java. Done by hand, that means learning the Image I/O API and the Java 2D API, learning image processing and image scaling techniques, and then manipulating BufferedImage objects through Graphics2D objects. Thumbnailator replaces exactly that path: the developer no longer accesses the Image I/O API or manipulates BufferedImages through Graphics2D directly, and instead expresses the whole task as one chained call.

Key capabilities

  • A fluent interface entered through Thumbnails.of(...), which lets a fairly complicated thumbnail processing task be performed in one chained step.
  • A size call such as size(640, 480) sets the maximum output dimensions while preserving the aspect ratio of the original image.
  • An output format call such as outputFormat("jpg") selects the format, allowing thumbnails to be written as JPEG files.
  • A write call such as toFiles(Rename.PREFIX_DOT_THUMBNAIL) emits thumbnails to files using a rename policy for output naming.
  • Batch input through Thumbnails.of(new File("path/to/directory").listFiles()), which processes an array of files from a directory in a single call.
  • A single JAR file with no external library dependencies, also published on the Maven Central Repository for inclusion in Maven projects.
  • Feature documentation, examples, a FAQ and API documentation for version 0.4.21 published on the project wiki and Javadoc site.

Who uses it and how

  • Java developers adding thumbnail generation to a Maven project, pulling the library from the Maven Central Repository rather than writing image handling code themselves.
  • Applications that convert every image file in a directory into a resized JPEG thumbnail carrying a prefixed filename, in one pass.
  • Teams that need thumbnails fitted to a fixed bounding box, with the documented example using a 640 by 480 maximum, while aspect ratios are preserved automatically.
  • Projects where deployment simplicity matters, because the dependency-free JAR adds no transitive dependency tree to manage.

Getting started

Thumbnailator is a single JAR with no external dependencies and is available through Maven, so the route in is adding it from the Maven Central Repository to a Maven project. Version 0.4.21 was released on October 1, 2025, and is the current documented API version.

How it compares

The closest alternative named in the project's own documentation is not another library but the JDK's Image I/O API and Java 2D API used directly, with BufferedImage and Graphics2D handled by the developer. Thumbnailator's contribution is the fluent, single-call interface and the dependency-free JAR layered over those raw imaging APIs, which is the trade it makes against writing that code by hand.

When to use it — and when not to

There is nothing to self-host, because this is a library rather than a service, so no database, storage layer or SMTP server is involved. The README states that Thumbnailator is still early in its development and that the APIs are subject to change at any time, so teams needing a frozen API contract should weigh that carefully. The repository front page is also brief, with the substantive feature and example material living on the wiki and Javadoc rather than in the README itself.

project readme (upstream, from github) — read inline

October 1, 2025: Thumbnailator 0.4.21 has been released! See Changes for details.

Thumbnailator is now available through Maven!

What is Thumbnailator?

Thumbnailator is a thumbnail generation library for Java.

Why Thumbnailator?

Making high-quality thumbnails in Java can be a fairly difficult task.

Learning how to use the Image I/O API, Java 2D API, image processing, image scaling techniques, ... but fear not! Thumbnailator will take care of all those things for you!

Thumbnailator is a single JAR file with no dependencies to external libraries, making development and deployment simple and easy. It is also available on the Maven Central Repository for easy inclusion in Maven projects.

How simple is Thumbnailator?

Thumbnailator's fluent interface can be used to perform fairly complicated thumbnail processing task in one simple step.

For example, creating JPEG thumbnails of image files in a directory, all resized to a maximum dimension of 640 pixels by 480 pixels while preserving the aspect ratio of the original image can be performed by the following:

Thumbnails.of(new File("path/to/directory").listFiles())
    .size(640, 480)
    .outputFormat("jpg")
    .toFiles(Rename.PREFIX_DOT_THUMBNAIL);

The fluent interface provided by the Thumbnailator simplifies the task of making thumbnails into a single method call!

No need to access the Image I/O API and manually manipulate BufferedImages through Graphics2D objects. Thumbnailator does all of that for you.

What can Thumbnailator do?

The following pages have more information on what Thumbnailator can do:

Disclaimer

Thumbnailator is still early in its development, and the APIs are subject to change at any time.

License

Thumbnailtor is released under the MIT License.

Frequently asked questions

Is thumbnailator free to use?

thumbnailator is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does thumbnailator do?

Thumbnailator - a thumbnail generation library for Java

What is thumbnailator written in?

thumbnailator is primarily written in Java. Its source is publicly available at https://github.com/coobird/thumbnailator, and it has 5,432 GitHub stars.