Project

General

Profile

Actions

Feature #1909

closed

IIIF image API server

Added by Alexander Watzinger almost 2 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Category:
IIIF
Target version:
Start date:
2023-09-15
Estimated time:

Description

Following up the issue to annotate images, we will look into possibilities to use OpenAtlas in combination with IIIF
Once we have solved this, we can also create an issue to add functionality to presentation sites.

Short info: https://guides.iiif.io/guide_for_implementers/#image-api

Branch: feature/iiif


Related issues 7 (0 open7 closed)

Related to OpenAtlas - Question #1883: Image annotationsClosed2022-11-18Actions
Precedes OpenAtlas - Feature #1910: IIIF: Image annotationClosedBernhard Koschiček-Krombholz2023-09-18Actions
Precedes OpenAtlas - Feature #2062: IIIF docker installationClosedBernhard Koschiček-Krombholz2023-09-18Actions
Precedes OpenAtlas - Feature #2064: IIIF viewer integrationClosedBernhard Koschiček-Krombholz2023-09-18Actions
Precedes OpenAtlas - Feature #2066: IIIF: Access restrictionClosedBernhard Koschiček-Krombholz2023-11-06Actions
Precedes OpenAtlas - Feature #2067: IIIF presentation APIClosedBernhard Koschiček-Krombholz2023-09-18Actions
Precedes OpenAtlas - Feature #2094: IIIF configuration and documentationClosedAlexander Watzinger2023-09-18Actions
Actions #1

Updated by Alexander Watzinger almost 2 years ago

Actions #2

Updated by Alexander Watzinger almost 2 years ago

  • Target version changed from 7.10.0 to 7.12.0
Actions #3

Updated by Alexander Watzinger almost 2 years ago

  • Start date changed from 2022-12-07 to 2022-12-08
  • Follows Feature #1910: IIIF: Image annotation added
Actions #4

Updated by Alexander Watzinger almost 2 years ago

  • Description updated (diff)
Actions #5

Updated by Alexander Watzinger almost 2 years ago

Actions #6

Updated by Alexander Watzinger almost 2 years ago

Actions #7

Updated by Alexander Watzinger almost 2 years ago

  • Status changed from Acknowledged to Assigned
  • Assignee set to Alexander Watzinger
Actions #8

Updated by Alexander Watzinger almost 2 years ago

I will start with looking int the IIPImage server which looks promising because:
  • It is open source (GPL 3), and on GitHub
  • Debian packages are available
  • Already used at the ACDH-CH
  • Seems to be actively developed and well documented
Actions #9

Updated by Alexander Watzinger almost 2 years ago

  • Status changed from Assigned to Acknowledged
  • Assignee deleted (Alexander Watzinger)

Removing myself as assignee because I'm on vacation and just in case that someone else wants to work on it in the meantime.

Actions #10

Updated by Alexander Watzinger over 1 year ago

  • Status changed from Acknowledged to In Progress
  • Assignee set to Alexander Watzinger

I'm back from vacation and will continue looking into it.

Actions #11

Updated by Alexander Watzinger over 1 year ago

  • Target version changed from 7.12.0 to 7.15.0
Actions #12

Updated by Alexander Watzinger over 1 year ago

Just some notes for myself (and maybe later for install notes)
IIPImage server install documentation: https://iipimage.sourceforge.io/documentation/server

# apt install iipimage-server

Test with http://localhost/iipsrv/iipsrv.fcgi

Actions #13

Updated by Alexander Watzinger over 1 year ago

  • Target version changed from 7.15.0 to 7.17.0
Actions #14

Updated by Alexander Watzinger over 1 year ago

  • Status changed from In Progress to Acknowledged
  • Assignee deleted (Alexander Watzinger)
Actions #15

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Status changed from Acknowledged to Assigned
  • Assignee set to Bernhard Koschiček-Krombholz
Actions #16

Updated by Bernhard Koschiček-Krombholz about 1 year ago

Another possibility is to integrate Flask-iiif directly in OpenAtlas.
Downsides:
  • Only supports IIIF API v1 and v2
  • Only pip package available

But it is available for every OpenAtlas instance without additional configuration. I made a branch: feature/iiif-server where it is available. After you installed flask-iiif via pip just start the application and go to this url and change ID to an existing image id:

http://127.0.0.1:5000/iiif/ID/full/500,600/180/bitonal.jpg

Actions #17

Updated by Bernhard Koschiček-Krombholz about 1 year ago

I looked into IIPImage. This is surly a more solid solution, but requires more configuration at installation.
Thoughts:
  • how to handle image identifiers. They need to be unique for IIIF, but if multiple OpenAtlas instances uses IIPImage, duplicated image identifiers can happen
  • for installation, solid knowledge about web server administration is required.
Actions #18

Updated by Alexander Watzinger about 1 year ago

Just a quick feedback from me about the latest considerations:

how to handle image identifiers. They need to be unique for IIIF, but if multiple OpenAtlas instances uses IIPImage, duplicated image identifiers can happen
I would assume that should be solvable, e.g. a different prefix per OpenAtlas instance

for installation, solid knowledge about web server administration is required
We should make this optional anyway (installation and usage), like:
  • A check if needed software is installed
  • If needed software is installed also a setting to turn it on/off in the backend admin area (saved in db table web/settings)
Actions #19

Updated by Bernhard Koschiček-Krombholz about 1 year ago

For the IIPServer, we have to choose between mod_fcgi or mod_fastcgi. While each server administrator can take what he wants, we should agree on a standard for our servers. mod_fcgid is, as far as I understand, automatically installed with apache2, so I got mod_fcgid.

Actions #20

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Subject changed from OpenAtlas IIIF integration to OpenAtlas IIIF integration (server + viewer)
  • Description updated (diff)
Actions #21

Updated by Bernhard Koschiček-Krombholz about 1 year ago

Could config server to use clean URL, e.g.

/iiif/output.tif/full/400,400/90/grey.jpg

One thing is, that I don't know if the current version of iipimage (1.1 in bookworm) can serve IIIF API v3.

Actions #22

Updated by Bernhard Koschiček-Krombholz about 1 year ago

Actions #23

Updated by Alexander Watzinger about 1 year ago

  • Subject changed from OpenAtlas IIIF integration (server + viewer) to OpenAtlas IIIF server integration
  • Status changed from Assigned to In Progress
Actions #24

Updated by Alexander Watzinger about 1 year ago

Actions #25

Updated by Alexander Watzinger about 1 year ago

  • Subject changed from OpenAtlas IIIF server integration to IIIF server integration
Actions #26

Updated by Alexander Watzinger about 1 year ago

Actions #27

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Subject changed from IIIF server integration to IIIF image API server
Actions #28

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)
Actions #29

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Start date changed from 2022-12-08 to 2023-09-15
  • Follows Feature #2067: IIIF presentation API added
Actions #30

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Status changed from In Progress to Resolved
Actions #31

Updated by Alexander Watzinger about 1 year ago

Actions #32

Updated by Alexander Watzinger about 1 year ago

Actions #33

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)
Actions #34

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)
  • Status changed from Resolved to In Progress

Instructions to install the IIIF image API Server are under IIIF.

I changed the conversion compression from deflate to jpeg.

Actions #35

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)
Actions #36

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)

One problem with the conversion with vips is, that transparent images lose their transparency.

Actions #37

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)
Actions #38

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)
Actions #39

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)
Actions #40

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Description updated (diff)
Actions #41

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Status changed from In Progress to Closed

Server works, the installation notes can be found under IIIF. Maybe some adaptation need to be done, but this we can only find out when we roll out a release.

Actions #42

Updated by Alexander Watzinger about 1 year ago

  • Precedes Feature #2094: IIIF configuration and documentation added
Actions #43

Updated by Alexander Watzinger about 1 year ago

  • Category changed from UI to IIIF
Actions

Also available in: Atom PDF