The International Image Interoperability Framework describes itself:
IIIF is a set of open standards for delivering high-quality, attributed digital objects online at scale. It’s also an international community developing and implementing the IIIF APIs. IIIF is backed by a consortium of leading cultural institutions.
This plug implements the most basic of these standards: The image API (version 3). The official IIIF documentation does a good job of describing the API in detail, so here just a small example.
The basic API syntax is
{scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}
An example based on the plug’s sample image in development would be:
http://127.0.0.1:4000/bentheim.tif/full/max/0/default.jpg
Which would give me a jpg (see the format
) version of the original tif:
Now I can change the region
, size
, rotation
, quality
and format
parameters in my query. The following query will:
- select a part of the image
– left: 700 pixel
– top: 500 pixel
– width: 520 pixel
– height: 520 pixel - scale the image to 89% of its original size
- flip the image (
!
) and then rotate it by 53° - make the image bitonal
- return the image as png
http://127.0.0.1:4000/bentheim.tif/700,500,520,520/pct:89/!53/bitonal.png
The result:
There exist several generic Javascript IIIF viewers that utilize this API to allow for optimized viewing (dynamic loading of parts of the image data based on zoom level/viewport).
WebGIS Javascript libraries like leaflet or OpenLayers support IIIF in one way or the other.