Skip to content

Releases: cantaloupe-project/cantaloupe

v3.3.3

12 Oct 16:54
Compare
Choose a tag to compare
  • Added Java 9 compatibility.
  • Upgraded dependencies to fix the following vulnerabilities: CVE-2015-6420. (Thanks to @kinow)
  • Fixed incorrect computation of post-rotation bounding boxes, manifesting as bogus values passed to the resulting_size delegate method arguments. (Thanks to @SaschaAdler)
  • Fixed a warning from FilesystemCache when multiple processes tried to create the same directory at the same time. (Thanks to @cbeer)
  • Fixed potentially incorrect tile sizes in information responses when using OpenJpegProcessor.
  • Fixed a bug in FfmpegProcessor that caused video info parsing to fail for some videos.
  • Added Origin to all Vary response headers, which fixes a potential CORS-related caching issue.
  • Fixed an issue where certain ImageIO plugins could fail to register when multiple applications that use ImageIO are running in the same container. (Thanks to @mmatela)
  • Fixed a resource leak when using image overlays.
  • Improvements in the testing and build process. (Thanks to @kinow)

v3.3.2

19 Jul 18:39
Compare
Choose a tag to compare
  • Fixed an inefficiency that caused image metadata to be read multiple times in a single image response.
  • Fixed endpoint authentication being enabled for certain non-endpoint resources.
  • Improved compatibility between OpenJpegProcessor and OpenJPEG when using OpenJPEG version 2.2.0 or later.
  • Fixed inability to stream source images when using AmazonS3Resolver.
  • Fixed a potential HTTP 500 error when multiple processes try to write the same image metadata concurrently using FilesystemCache.
  • Corrected the documentation for processor.upscale_filter and processor.downscale_filter.
  • GraphicsMagickProcessor and ImageMagickProcessor support a ?page query argument with PDFs.

v3.3.1

05 Jun 21:15
Compare
Choose a tag to compare
  • Fixed caches failing to take URL query arguments into account.
  • Fixed a potentially incorrect Cache-Control header being sent in HTTP >400 responses.
  • Fixed parsing of comma-separated X-Forwarded-* header values.
  • Improved the reliability of the value of the client_ip argument to the authorized?() delegate method when behind a reverse proxy.
  • Fixed a connection leak in AmazonS3Resolver.
  • Fixed potential malformed concurrent image responses when using a processor other than ImageMagickProcessor or GraphicsMagickProcessor.
  • Fixed a potential NullPointerException (HTTP 500) involving concurrent requests when using the delegate script.
  • Fixed processors and caches not respecting the value of processor.normalize.
  • Prevented the configuration file and/or delegate script from being reloaded twice on some platforms.
  • Fixed PDF source format support in GraphicsMagickProcessor and ImageMagickProcessor.
  • Upgraded JRuby to 9.1.10.0.

v3.3

28 Feb 20:59
Compare
Choose a tag to compare

Endpoints

  • Auto-computed tile sizes of source images with an odd number of pixels in a dimension in information responses are rounded up, to prevent clients from requesting extremely narrow edge tiles.
  • Operations that would have no effect in their context—for example, a crop to 0,0/300×200, followed by a scale-to-fit to 300 pixels wide—are skipped.
  • Improved request validation.
  • Added a RESTful API endpoint to retrieve and update the configuration.

Processors

  • Most processor-specific configuration settings now apply across all processors, making them integrate better into the caching architecture.
  • Added an auto-normalize option to all image processors.
  • Added an option to all processors to output progressive JPEGs.
  • Added experimental support for DICOM images to GraphicsMagickProcessor, ImageMagickProcessor, Java2dProcessor, and JaiProcessor. (This is a very complex format and not all variants are working.)
  • FfmpegProcessor uses a Java 2D processing pipeline, giving it more capabilities.
  • Java2dProcessor and JaiProcessor support 16-bit LZW- and ZIP-compressed TIFFs.
  • GraphicsMagickProcessor and ImageMagickProcessor support selectable resample filters.
  • GraphicsMagickProcessor and ImageMagickProcessor respect the EXIF Orientation tag.
  • ImageMagickProcessor supports ImageMagick 7.
  • PdfBoxProcessor supports JBIG2-encoded embedded images.
  • PdfBoxProcessor returns HTTP 400 when given an illegal page number.
  • FfmpegProcessor returns HTTP 400 when given an illegal time.

Caching

  • The -Dcantaloupe.cache.purge VM option accepts an identifier argument to purge all content related to an individual identifier.
  • Added a RESTful API endpoint to purge individual images from the cache.
  • A cache=false URL query option can be used in all endpoints to bypass the derivative cache and disable the Cache-Control header per-request.
  • FilesystemCache supports identifiers longer than the filesystem's filename length limit.

Overlays

  • Watermarks have been renamed to overlays.
  • Added textual overlays.
  • Overlay images can be located on the filesystem or an HTTP(S) server.
  • Overlay images are cached in memory for better efficiency.

Delegate Script

  • Added an optional delegate method invocation cache.
  • Added the ability to redirect to another URL via the authorized?() delegate method.
  • The delegate script is reloaded on change rather than per-request.

v3.2.4

27 Feb 21:07
Compare
Choose a tag to compare
  • Fixed all processors except JaiProcessor treating scale-to-dimensions requests (w,h) as scale-to-fit (!w,h).
  • Fixed a bug affecting upscaled crops when using pyramidal images with Java2dProcessor or JaiProcessor.
  • Worked around a bug in JAI involving downscaling of compressed TIFF tiles, affecting JaiProcessor.

v3.2.3

30 Jan 16:20
Compare
Choose a tag to compare
  • Fixed inability to upscale in JaiProcessor, omitted in error from 3.2.2.
  • Fixed incorrect scale size computation using flooring instead of rounding.
  • Fixed a bug in FilesystemCache that could cause an HTTP 500 error when accessing the same uncached info.json resource concurrently.
  • FilesystemCache cleans up zero-byte files created in certain situations, typically involving failure in the underlying storage.
  • Fixed a bug that could cause incompletely-written cached images (with any cache) to not get cleaned up properly.

v3.2.2

17 Dec 02:16
Compare
Choose a tag to compare
  • Fixed inability to upscale by pixels.
  • Fixed an error in response to requests for images less than 3 pixels on a side when sharpening is enabled, in all processors using the Java 2D pipeline.
  • Fixed an error in JaiProcessor when attempting to scale an image less than 3 pixels on the smallest side.
  • Fixed a bug in FilesystemCache that caused zero-byte files to be written and an HTTP 500 response when handling concurrent identical requests.
  • Error responses include a more appropriate Cache-Control header rather than the one set in the configuration.
  • Trailing slashes in X-Forwarded-Path header values are trimmed off, preventing double-slashes from appearing in generated URLs.

v3.2.1

16 Nov 00:50
Compare
Choose a tag to compare
  • Fixed a bug that caused the resolver selected by the get_resolver() delegate method to not be initielized properly.
  • Fixed a path-handling bug affecting ImageMagickProcessor and GraphicsMagickProcessor primarily in Windows.
  • Fixed incorrect image sizes when using FfmpegProcessor with percentage scales above 100%.
  • Improved support for 16-bit source images in Java2dProcessor, JaiProcessor, GraphicsMagickProcessor, and ImageMagickProcessor.

v3.2

02 Sep 19:11
Compare
Choose a tag to compare
  • Java 8 is now required.
  • Significant efficiency improvements in the Java 2D processing pipeline affecting Java2dProcessor, JaiProcessor, and KakaduProcessor.
  • All processors that use the Java 2D pipeline (Java2dProcessor, KakaduProcessor, OpenJpegProcessor, PdfBoxProcessor) support selectable upscaling and downscaling filters.
  • Improved the scale quality of JaiProcessor.
  • All processors offer configurable sharpening levels.
  • Applicable processors respect source ICC color profiles.
  • Added the option to copy EXIF, IPTC IIM, XMP, and/or native TIFF and PNG metadata from source images to derivative images of the same format, for some processors.
  • Java2dProcessor and JaiProcessor respect the value of an embedded EXIF Orientation tag.
  • Increased the default Java2dProcessor/JaiProcessor JPEG quality to 0.8 (80).
  • Added support for a X-IIIF-ID request header, in order to return correct image identifiers in information responses whose requests have passed through a reverse proxy using a different identifier.
  • Removed the JAI post-processor option for KakaduProcessor and OpenJpegProcessor.
  • Zero-byte files are deleted when purging or cleaning FilesystemCache.
  • KakaduProcessor and OpenJpegProcessor display a less inscrutable error message when they are unable to read a source file.
  • HTTP 415 is returned instead of HTTP 400 when an output format is requested that is valid but unsupported by the current processor.
  • Colorized the console application log.
  • Console application log messages with a severity of WARN and above are routed to standard error.
  • Upgraded a number of libraries.

v3.1.2

27 Jul 17:01
Compare
Choose a tag to compare
  • Fixed a resource leak that would cause landing pages, error pages, and the Control Panel to become inaccessible after a long time running.
  • Fixed a bug where the watermark wouldn't be added if redactions were enabled and set to use DelegateScriptStrategy but the delegate script was disabled.
  • Fixed tile sizes in the IIIF Image API 2.x information response when using KakaduProcessor.
  • HTTP 400 is returned in response to a request for an image that would be zero pixels on a side, even when the zero dimension is not explicit in the request. (For example, a size of 4, for an image that is at least five times wider than it is tall.) (Previously, it was only returned when zero pixels was explicitly requested, and the image returned for implicit zero sizes was incorrect.)