Skip to content

API IIIF

tledoux edited this page Nov 15, 2016 · 13 revisions

API IIIF

Contexte

L'API IIIF (pour International Image Interoperability Framework) est une API standardisée par le consortium IIIF ayant comme objectif de permettre la manipulation homogène d'images indépendamment de leurs localisations physiques et des établissements qui les hébergent.

Il s'agit de définir, pour des grands entrepôts de documents numériques des interfaces permettant l'interopérabilité de leurs images (manuscrits, photographies, estampes, pages de livre, etc. etc.) en fournissant des métadonnées sur ces documents et des verbes de manipulation des images.

La Bibliothèque nationale de France, en tant que participant à cette communauté IIIF, propose l'accès à l'intégralité des images qui composent sa bibliothèque numérique Gallica, ce qui représente plus de 3,5 millions de documents et plus de 100 millions d'images.

L'API IIIF contient plusieurs ensembles de spécifications :

Documentation

La documentation complète de l'API est présentée sur le site du consortium : http://iiif.io Les restrictions à la BnF sont les suivantes :

  • L'API Image (actuellement en version 2.1 de la spécification) - API implémentée en version 2.0 à la BnF
  • L'API Présentation (actuellement en version 2.1 de la spécification) - API implémentée en version 2.0 à la BnF
  • L'API de recherche (actuellement en version 1.0 de la spécification) - API non implémentée à la BnF

API Images

L'API images est une API Restfull. Pour l'utiliser, il est nécessaire d'utiliser la syntaxe d'accès suivante : {scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format} .

  • Le scheme est le protocole utilisé ("http" à la BnF)
  • Le server correspond au nom de l'hôte ("gallica" à la BnF)
  • Le prefix à la localisation du service ("iiif" à la BnF)
  • L'identifier est l'identifiant ark du document ou d'une page du document (par exemple ark:/12148/btv1b7711259g)
  • La regionest la zone sélectionnée (rectangle) dans l'image source (par exemple "3976,3143,870,618" pour un rectangle de 870 pixels de largeur, pour 618 de hauteur et ayant comme coordonnées, en pixels 3976 et 3143.
  • La sizeest la taille de l'image générée en pixels
  • La rotation correspond à un angle de rotation pour l'image cible (en degrés, par exemple "90")
  • La quality correspond à une transformation possible de l'image (par exemple "native" pour le même format que l'original niveaux de gris, noir et blanc, couleur)
  • Le formatcorrespond au format de l'image cible souhaité (par exemple PNG ou JPG).

Voici quelques exemples qui permettent d'illustrer ce qu'il est possible de faire avec cet API de transformation.

####Sélection d'une partie du document

A partir du document suivant, accessible sur Gallica, présentant un récital d'Artha Franklin , il est possible de n'obtenir qu'une partie de l'image à travers l'API: http://gallica.bnf.fr/iiif/ark:/12148/btv1b90017179/f15/0,1900,2400,1200/full/0/native.jpg

####Déformation d'une image Il est également possible en jouant sur le paramètre sizede jouer sur le rendu de l'image en sortie. Par exemple, en revoyant un peu la géométrie de cette image de la Tour Eiffel : http://gallica.bnf.fr/iiif/ark:/12148/btv1b9055204k/f1/full/1500,750/0/native.jpg.

####Rotation d'une image En utilisant le paramètre rotationprésenté plus haut, il est également possible de faire "tourner" certaines images du fonds de Gallica... Comme des disques... http://gallica.bnf.fr/iiif/ark:/12148/bpt6k8801260t/f1/full/full/135/native.jpg

####Transformation des images (couleur, noir et blanc, gris) Le paramètre qualitypermet de transformer les images (espace colorimétrique). Par exemple, de transformer cette lumineuse affiche en noir et blanc : http://gallica.bnf.fr/iiif/ark:/12148/btv1b52504148b/f1/full/full/0/grey.jpg

####Format en sortie Actuellement les images de Gallica peuvent être récupérées en png ou en jpg à partir de l'API IIIF en le précisant dans le paramètre format.

####Combinaison des effets Bien entendu, les effets sont facilement combinables, les uns avec les autres. Par exemple cette retouche d'une image de la chanteuse de jazz précédemment citée : http://gallica.bnf.fr/iiif/ark:/12148/btv1b90017179/f3/full/750,500/30/bitonal.jpg

API Présentation

Pour l'obtention des métadonnées d'un document particulier, l'API de présentation est disponible. Il s'agit d'une API en REST qui permet d'obtenir des métadonnées bibliographiques, techniques, de structure, de droits sur un document à partir de son identifiant. Les métadonnées sont obtenues dans une capsule json. Pour obtenir toutes les métadonnées liées à l'ensemble de clichés photographiés lors du festival d'Aretha Franklin, l'appel à une simple URL est suffisant : http://gallica.bnf.fr/iiif/ark:/12148/btv1b550076223/manifest.json.

Difficultés

API restfull, cette API est très simple à utiliser et ne nécessite pas de pré-requis en développement particulier.

Clients de l'API

Plusieurs outils OpenSource permettent d'utiliser l'API IIIF et donc celle de la BnF. Les outils principaux (une liste plus large est présente sur le site iiif.io sont présentés ci-dessous.

Clone this wiki locally