Dernière version de la spécification : http://iiif.io/api/image/2.1/
La spécification Image API décrit un service web dont le but est de renvoyer une image en réponse à une requête HTTP standard. Il repose sur une syntaxe d'URL normalisée permettant de spécifier deux types de requêtes pour une même image :
- requête de l'image physique elle-même, en fonction de divers paramètres de taille, de région (zone au sein de l'image), d'orientation (angle de rotation), de qualité ou de format.
- requête d'informations techniques de base sur l'image, utilisables par une application cliente (visualiseur ou autre) sous la forme de données JSON.
Requête d'image
Modèle d'URL :
{scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}
Par exemple :
http://www.example.org/image-service/abcd1234/full/full/0/default.jpg
Exemples de requêtes (image source : Gallica, BnF) :
- http://gallica.bnf.fr/iiif/ark:/12148/btv1b8451103b/f9/full/,800/0/native.jpg => image entière, hauteur de 800 pixels, sans rotation, format JPG
- http://gallica.bnf.fr/iiif/ark:/12148/btv1b8451103b/f9/1200,1300,620,580/pct:90/325/grey.png => région d'image, à 90% de sa taille, rotation de 325°, niveau de gris, format PNG
NB : le paramètre {identifier} est l'identifiant unique de l'image, exprimé en tant que chaîne de caractères. Ce peut être un ARK, un URN, un nom de fichier ou tout autre type d'identifiant. Les caractères spéciaux doivent être encodés.
Pour des explications détaillées sur chaque paramètre et leurs valeurs respectives, se reporter à la page officielle de l'API Image.
Requête d'informations sur l'image
Modèle d'URL :
{scheme}://{server}{/prefix}/{identifier}/info.json
Par exemple :
http://www.example.org/image-service/abcd1234/info.json
Exemple de requête :
Niveaux de compatibilité
L'API Image dispose de 3 niveaux de compatibilité qui permettent d'évaluer le degré d'implémentation de l'API par le service délivrant les images (c'est-à-dire l'ensemble des paramètres et valeurs supportés par celui-ci).
En principe le niveau de compatibilité doit être exprimé sous la forme d'une URI dans les réponses fournies par le serveur : soit dans l'entête HTTP “Link”, soit dans l'élément “profile” de la requête d'information sur l'image (voir ci-dessus l'exemple avec JSON).
Voir le document Image API Compliance (Level 0, 1, 2).