Cantaloupe
High-performance dynamic image server in Java


Cantaloupe is an open-source dynamic image server for on-demand generation of derivatives of high-resolution source images. With available operations including cropping, scaling, and rotation, it can support deep-zooming image viewers, as well as on-the-fly thumbnail generation. Compliance with the IIIF Image API enables it to work with a growing number of client applications.

Easy

  • Get started in minutes. A web server is built right in.
  • One human-friendly configuration file with extensive inline help.

Standards-Compliant

  • Fully conformant to all IIIF Image API versions through 3.0.

Secure

  • Dynamic, selective image and text watermarking with fine-grained controls.
  • On-the-fly redaction of image regions.
  • Built-in support for HTTPS and HTTP Basic authentication.
  • Supports arbitrary authorization policies for integration into diverse infrastructures, and tiered access to dynamically degraded images.

Flexible

  • Serve images from multiple sources, with different settings, via the same application instance.
  • Customize behavior using a delegate class written in Ruby or Java.
  • Dynamically transform embedded XMP image metadata.
  • HTTP methods for common management functions like purging the cache and updating the configuration.

High-Quality

  • Selectable resample filters, sharpening levels, and compression levels to optimize output for speed or quality.

Modular

  • Pluggable sources for retrieving images from a variety of places—including filesystems, databases, remote web servers, and cloud storage—with optional scriptable "hooks" to enable dynamic source selection and image lookup.
  • Pluggable processors to support a variety of source image formats—as well as still-frame extraction from videos in a variety of formats.
  • Pluggable caches with customizable strategies and available automatic maintenance.

Fast

  • Optimized JPEG2000 and TIFF readers capable of excellent performance with massive images.
  • Available filesystem, database, Redis, in-memory, and cloud storage caches to speed up response times and reduce server load.
  • An in-memory metadata cache boosts performance for frequently-accessed images.

Get Started

Download

Upgrading? Review UPGRADING.md and CHANGES.md in the downloaded file for important info.

Download

Requires Java 11+

Download an Older Version

Optional components, such as particular processors, may have other dependencies; see the user manual.

Configure
  1. The distribution archive bundles a sample configuration file, named cantaloupe.properties.sample. Make a copy and open it in a text editor.
  2. Set FilesystemSource.BasicLookupStrategy.path_prefix to a folder path containing some images.
Run

From a command prompt:

java -Dcantaloupe.config=/path/to/cantaloupe.properties -Xmx2g -jar cantaloupe-x.x.x.jar

From a command prompt:

java -Dcantaloupe.config=C:\path\to\cantaloupe.properties -Xmx2g -jar cantaloupe-x.x.x.jar

Now, assuming you have an image named image.tif, try accessing:

Get Help

For questions and comments, please start a GitHub discussion.

For bug reports, feature requests, and other to-do items, please file a GitHub issue.