MCPcopy
hub / github.com/coobird/thumbnailator

github.com/coobird/thumbnailator @0.4.21 sqlite

repository ↗ · DeepWiki ↗ · release 0.4.21 ↗
1,537 symbols 9,014 edges 126 files 702 documented · 46%
README

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.

Extension points exported contracts — how you extend this code

Resizer (Interface)
This interface is implemented by classes which perform resizing operations. @author coobird [7 implementers]
src/main/java/net/coobird/thumbnailator/resizers/Resizer.java
ResizerFactory (Interface)
This interface is implemented by all classes which will return a Resizer that should be used when creating a thu [6 implementers]
src/main/java/net/coobird/thumbnailator/resizers/ResizerFactory.java
Size (Interface)
This interface is implemented by classes which calculate the size of an object inside of an enclosing object. @author c [6 …
src/main/java/net/coobird/thumbnailator/geometry/Size.java
Position (Interface)
This interface is implemented by classes which calculate how to position an object inside of an enclosing object. @auth [6 …
src/main/java/net/coobird/thumbnailator/geometry/Position.java
ImageFilter (Interface)
This interface is to be implemented by classes which performs an image filtering operation on a BufferedImage. < [20 implementers]
src/main/java/net/coobird/thumbnailator/filters/ImageFilter.java

Core symbols most depended-on inside this repo

size
called by 489
src/main/java/net/coobird/thumbnailator/util/exif/IfdType.java
of
called by 377
src/main/java/net/coobird/thumbnailator/Thumbnails.java
build
called by 318
src/main/java/net/coobird/thumbnailator/builders/BufferedImageBuilder.java
read
called by 193
src/main/java/net/coobird/thumbnailator/tasks/io/ImageSource.java
asBufferedImage
called by 187
src/main/java/net/coobird/thumbnailator/Thumbnails.java
get
called by 125
src/test/java/net/coobird/thumbnailator/tasks/io/FileImageSourceTest.java
next
called by 109
src/main/java/net/coobird/thumbnailator/Thumbnails.java
scale
called by 102
src/main/java/net/coobird/thumbnailator/Thumbnails.java

Shape

Method 1,362
Class 153
Enum 12
Interface 10

Languages

Java100%

Modules by API surface

src/test/java/net/coobird/thumbnailator/ThumbnailsBuilderInputOutputTest.java234 symbols
src/test/java/net/coobird/thumbnailator/ThumbnailsBuilderTest.java202 symbols
src/main/java/net/coobird/thumbnailator/Thumbnails.java100 symbols
src/test/java/net/coobird/thumbnailator/ThumbnailatorTest.java52 symbols
src/test/java/net/coobird/thumbnailator/makers/FixedSizeThumbnailMakerTest.java46 symbols
src/test/java/net/coobird/thumbnailator/tasks/io/FileImageSinkTest.java34 symbols
src/test/java/net/coobird/thumbnailator/tasks/io/InputStreamImageSourceTest.java31 symbols
src/test/java/net/coobird/thumbnailator/name/RenameTest.java31 symbols
src/test/java/net/coobird/thumbnailator/makers/ScaledThumbnailMakerTest.java30 symbols
src/test/java/net/coobird/thumbnailator/ThumbnailsBuilderNullEmptyInputTest.java29 symbols
src/test/java/net/coobird/thumbnailator/tasks/io/FileImageSourceTest.java25 symbols
src/test/java/net/coobird/thumbnailator/filters/PipelineTest.java23 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

junit:junit4.13.2 · 1×
org.hamcrest:hamcrest-core1.3 · 1×
org.mockito:mockito-core1.8.5 · 1×

For agents

$ claude mcp add thumbnailator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact