Cantaloupe
High-performance dynamic image server in Java

Cantaloupe is an open-source image server enabling 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.

Project goals include performance, scalability, and extensibility, without sacrificing ease-of-use.


Andromeda Galaxy in OpenSeadragon, powered by Cantaloupe
Multi-Resolution Tiled BigTIFF | 6.2 GB | 69536×22230 (1.5 gigapixel)
ESA/Hubble

Benefits

Easy

  • Get started in minutes with no web containers or XML files to deal with. A fast web server is built right in, or deploy to a container, if you want.
  • One human-friendly configuration file with extensive inline help.
  • Self-contained for painless prototyping, deployment, and upgrading.

Flexible

  • Drive deep-zooming image viewers, or create thumbnails for images, PDFs, and videos on-the-fly.
  • Use opaque image identifiers that do not reveal an underlying resource location for secure and stable URIs.
  • Serve images from multiple sources, with different settings, via the same application instance.
  • Dynamically embed custom keys in IIIF information responses.

Secure

  • Dynamic, selective image and textual watermarking with fine-grained controls.
  • On-the-fly redaction of image regions.
  • Built-in support for HTTPS and HTTP Basic authentication.
  • Supports fine-grained authorization policies for integration into diverse infrastructures.

Standards-Compliant

  • Fully conformant to all versions of the IIIF Image API, with separate endpoints for versions 1 and 2.

High-Quality

  • Selectable resample filters, sharpening levels, and compression levels to optimize output for speed or quality.
  • Embedded ICC color profiles are respected.

Metadata-Aware

  • Copy embedded EXIF, IPTC, XMP, and native metadata from source images to derivative images (with some formats).

Modular

  • Pluggable resolvers for retrieving images from a variety of sources—including filesystems, databases, remote web servers, cloud and object storage—with optional scriptable "hooks" to enable dynamic resolver 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.

Manageable

  • RESTful methods for common management functions like purging the cache and updating the configuration.

Fast

  • Optimized JPEG2000 and TIFF readers capable of excellent performance with massive images.
  • Available filesystem, database, and cloud storage caches to speed up response times and reduce server load.