NAME
IIIF::Request - IIIF Image API request object
SYNOPSIS
use IIIF::Request;
my $request = IIIF::Request->new('125,15,120,140/90,/!345/gray.jpg');
DESCRIPTION
Stores parts of an IIIF ImageAPI after {identifier}:
{region}/{size}/{rotation}/{quality}.{format}
In contrast to the IIIF Image API Specification, all parts are optional. Omitted parts are set to their default value, except for format which is allowed to be undefined. Parsing of percentage and degree values is more forgiving than required by the specification as values are normalized (e.g. removal of redundant digits). The following additional fields are set if deriveable form the request:
- region_pct
 - region_px
 - upscale
 - size_pct
 - size_px
 - ratio
 - mirror
 - degree
 
METHODS
new( [ $request ] )
Parses a request string. It's ok to only include selected image manipulations. Will raise an error on invalid requests. The request is parsed independent from a specific image so regions and sizes outside of the image bound are not detected as invalid.
as_string
Returns the full request string. Percentage values and degrees are normalized.
is_default
Returns whether the request (without format) is the default request full/max/0/default to get an unmodified image.
canonical( $width, $height [, %max ] )
Returns the canonical request for an image of given width and height or undef if this would result in an invalid request (because region or size would be out of bounds). In contrast to the specification, the format is not required part of the canonical request.
Optional named arguments maxWidth and maxHeight in %max can be used to control maximum allowed image size. As specified, maxWidth is ignored unless maxHeight is also given. Option maxArea is not supported.
error
Raise an "Invalid IIIF Image API Request" error. Can also be used as function.