Dieser Abschnitt beschreibt die Integration des International Image Interoperability Frameworks (IIIF).
Mit dem MyCoRe Modul
mycore-iiif
ist es möglich, Metadaten und Bilder über URLs im IIIF API Format bereitzustellen.
Dadurch können beispielsweise in MyCoRe-Anwendungen gespeicherten Bilddaten auch in externen IIIF Viewern angezeigt
werden.
MyCoRe 2020.06 implementiert die IIIF Image API Version 2.1.1.
Die Konfigurationsmöglichkeiten wurden in
2020.06
überarbeitet.
Dabei wurde u.a. die Basis-URL von
/rsc/iiif
auf
/api/iiif
geändert.
Das Modul mycore-iiif
wird in die pom.xml der MyCoRe-Anwendung als Abhängigkeit eingetragen.
Da eine MyCoRe-Anwendung im Image-Identifier in der Regel URL-codierte Slashes (/ = %2F
) verwendet,
muss der Webserver dafür entsprechend konfiguriert werden:
Im Tomcat muss das System-Property org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
gesetzt werden.
Das kann durch Eintrag in die Konfigurationsdatei catalina.opts
erfolgen oder indem der Tomcat mit dem Parameter
-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
gestartet wird.
In aktuellen Tomcat-Versionen (>= 8.5.54, >= 9.0.34, >= 10) erfolgt die Konfiguration statt dessen über das Connector-Attribut encodedSolidusHandling="passthrough"
in der Konfigurationsdatei server.xml
.
(siehe: https://tomcat.apache.org/tomcat-8.5-doc/config/http.html#Common_Attributes).
|
|
Tomcat-Konfiguration: …/tomcat/conf/server.xml
|
|
Apache-Konfiguration: /etc/apache/sites-available/digibib.conf
Keine spezifischen Anpassungen nötig. Jetty verarbeitet codierten Slashes (/
) korrekt.
Gemäß IIIF Image API Spezifikation haben URLs die folgende Struktur:
{scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}
.
entspricht der Basis-URL der MyCoRe-Anwendung
kann aus mehreren Pfad-Bestandteilen bestehen. Optional kann es an erster Stelle den Pfad zur Anwendung enthalten,
z.B.: http://localhost:8080/skeleton/api/v2/...
Die weiteren Pfad-Bestandteile bilden den Pfad zur IIIF API. Sie können ggf. eine ID für eine konkrete Implementierung enthalten,
z.B.:
/api/iiif/image/v2
bzw. /api/iiif/image/v2/Iview
bzw. /api/iiif/image/v2/thumbnail
.
Der Image-Identifier hat in der MyCoRe-Standardimplementierung die Syntax:
derivate_id:/pfad/zum/image.ext
Slashes sind in ihrer URL-codierten Form (%2F
) zu verwenden,
z.B.: skeleton_derivate_00000024:%2Fsample1.png
Diese Parameter werden gemäß der IIIF API Spezifikation verwendet.
Es lassen sich verschiedene Implementierungen der IIIF API in MyCoRe verwenden.
Die Standardimplementierung Iview
arbeitet mit den gekachelten Bilddateien, die für MyCoRe-Viewer verwendet werden.
|
|
Konfiguration: mycore.properties
https://www.mycore.de/mir/api/iiif/image/v2/Iview/dbbs_derivate_00000169%2Fmax%2F00000029.jpg/full/max/0/default.png
MyCoRe liefert eine Spezialimplementierung für Vorschaubilder (Thumbnails) mit. In dieser Implementierung wird als Image-Identifier an Stelle einer Bilddatei die ID eines MyCoRe-Objektes angegeben.
Für PDFs werden die Vorschaubilder beim Speichern der MyCoRe-Objekte über einen Eventhandler extrahiert und im internen Bildformat abgelegt.
Es kann konfiguriert werden, welche Derivate-Typen der Eventhandler für die Thumbnail-Generierung berücksichtigen soll:
|
|
Konfiguration: mycore.properties
In MyCoRe lassen sich verschiedenen Implementierungen der IIIF Presentation API verwenden. Die Standardimplementierung mets
erstellt die Manifest-Datei aus einer bestehenden MyCoRe-Viewer-METS-Datei.
Folgende Properties können für die Konfiguration der Implementierung verwendet werden:
|
|
Konfiguration: mycore.properties
Die Konfiguration ist recht einfach. Auf jeden Fall muss das Modul
mycore-iiif
in der pom.xml als Abhängigkeit eingetragen werden. Weiterhin sind folgende Properties in der mycore.properties
zu setzen:
Dabei gibt IView im Property-Namen den Typ der Implementierung an.
MCRIVIEWIIIFImageImpl
ist dann die Klasse der konkreten Implementierung. Die Lösung mit MCRIVIEWIIIFImageImpl benötigt das
weitere Property TransparentFormats .
Die Daten können nun wie folgt abgerufen werden. Dabei ist darauf zu achen, das der Pfad zu den Bildern encoded ist (/ -> %2F).