Image Server
Přehled
Kramerius používá externí image server pro poskytování obrazových dat digitalizovaných dokumentů.
Image server poskytuje:
- stránkové skeny
- dlaždice (tiles)
- zmenšeniny
- transformace obrazu
- zoom
- výřezy obrazu
Komunikace je založena na standardu IIIF Image API.
IIIF Image API
Kramerius používá principy standardu IIIF Image API.
Viz: - https://iiif.io/get-started/image-servers/
IIIF server umožňuje dynamické generování:
- výřezů obrazu
- různých velikostí
- rotací
- různých formátů
bez nutnosti ukládání všech variant obrazu.
Role image serveru
Image server není součástí Krameria.
Kramerius funguje jako:
- klient IIIF serveru
- proxy vrstva
- access-control vrstva
Samotné generování obrazových dat provádí externí image server.
Vazba na digitální objekty
Každý obrazový objekt může obsahovat vazbu na image server endpoint.
Endpoint je získáván z repository vrstvy:
- Akubra repository
- metadata objektu
Pokud objekt image endpoint nemá, nelze obrazová data získat.
Získání IIIF endpointu
Kramerius získává URL image serveru z repository vrstvy (Akubra repository).
Informace o image endpointu je uložena v:
- Fedora RELS-EXT streamu
- atributu
tiles-url
pro konkrétní obrazový objekt.
Backend:
- načte
tiles-urlz RELS-EXT - ověří jeho dostupnost
- transformuje starší image endpointy na IIIF endpoint
Transformace legacy endpointů
Kramerius podporuje migraci starších image server formátů.
Pokud repository obsahuje URL založené na:
- Zoomify
- DeepZoom
backend automaticky transformuje endpoint na IIIF variantu.
Například:
| Původní endpoint | Výsledný endpoint |
|---|---|
| zoomify | iiif |
| deepZoom | iiif |
Tím je možné používat jednotný IIIF model i nad staršími repository daty.
Chybějící endpoint
Pokud repository:
- neobsahuje
tiles-url - nebo obsahuje placeholder hodnotu
Kramerius považuje objekt za nepřipojený k image serveru.
V takovém případě nelze obrazová data poskytovat.
IIIF URL model
Kramerius skládá IIIF request ve formátu:
{region}/{size}/{rotation}/{quality}.{format}
Typické parametry:
| Parametr | Význam |
|---|---|
| region | výřez obrazu |
| size | cílová velikost |
| rotation | rotace |
| quality | kvalita obrazu |
| format | výstupní formát |
Typický request
Příklad logické struktury requestu:
region/size/rotation/default.jpg
Například:
- full/full/0/default.jpg
- pct:10,10,80,80/512,/0/color.jpg
Podporované operace
Image server typicky podporuje:
- full image rendering
- tiled access
- region crop
- scaling
- rotation
- změnu kvality
- různé výstupní formáty
MIME type handling
Kramerius mapuje formát requestu na MIME type.
Například:
| Formát | MIME type |
|---|---|
| jpg | image/jpeg |
| png | image/png |
| tif | image/tiff |
MIME type může být odvozena:
- z formátu
- z quality parametru
Proxy režim
Kramerius funguje jako streaming proxy mezi klientem a image serverem.
Flow:
- klient zavolá Kramerius endpoint
- Kramerius vytvoří IIIF URL
- request je přesměrován na image server
- response stream je předán klientovi
Streaming response
Obrazová data nejsou ukládána do paměti jako celek.
Kramerius používá streaming:
- InputStream z image serveru
- přímé kopírování do HTTP response
Tento přístup:
- snižuje memory usage
- umožňuje práci s velkými obrazy
- podporuje tiled rendering
HTTP hlavičky
Kramerius přebírá vybrané HTTP hlavičky z image serveru.
Typicky:
- Cache-Control
- Last-Modified
Tím je zachováno:
- cache chování
- HTTP validace
- browser caching
Error handling
Pokud objekt nemá image server endpoint:
- request selže
- backend vrací chybu
Kramerius také zachytává:
- connection reset
- broken pipe
- network chyby image serveru
Bezpečnostní model
Image server může být:
- interní infrastruktura
- oddělená služba
- externí systém
Kramerius může fungovat jako access-control vrstva nad IIIF serverem.
Klient tedy nemusí komunikovat přímo s image serverem.
Vztah ke storage vrstvě
Image server pracuje nad uloženými obrazovými daty.
Typicky:
Storage ↓ Image Server ↓ Kramerius ↓ UI klient
Vztah k UI
Reader UI používá image server pro:
- zobrazení stránek
- zoom
- tiled rendering
- deep zoom navigaci
Architektonický model
Zjednodušený model:
Digital Object ↓ Repository metadata ↓ IIIF endpoint ↓ Image Server ↓ Kramerius proxy ↓ Frontend viewer
Shrnutí
Kramerius používá externí IIIF image server pro poskytování obrazových dat digitalizovaných dokumentů.
Backend funguje jako:
- IIIF klient
- streaming proxy
- access-control vrstva
a umožňuje efektivní práci s velkými obrazovými daty.
Navazujici dokumentace
- ➡️ Zakladni pojmy
- ➡️ Architektura
- ➡️ Konfigurace
- ➡️ Verzovani