This is an Islandora viewer module using OpenSeadragon. It allows users to view large image datastreams (like JPEG-2000) through image tile servers and can be used with Book/Newspaper Pages and Large Images. This module supports a custom Djatoka tilesource and a IIIF tilesource.
In addition, either Djatoka or a IIIF image server needs to be setup.
Note: when using the Islandora Paged Content module, you may need Djatoka installed even if you use a IIIF Image Server. See ISLANDORA-2461 for more on this.
Older versions must be updated. You can do this quickly with the provided Drush command.
Drush OpenSeadragon installation
This module provides a Drush command to download and install a recent version of OpenSeadragon. It is advisable to move (not copy) the install script to your
.drush folder and run the following command from that folder:
Manual OpenSeadragon installation
Download the OpenSeadragon 2.3.1 binary release and install the Openseadragon library to your sites/libraries folder.
A reverse proxy can be used to make an image server available on the same domain as Drupal, so that cross-origin resource access and the need for CORS headers are avoided.
Various applications can be used as a reverse proxy; Apache HTTPD and nginx are common in reverse proxy setups. For details on configuring your reverse proxy, you should consult the documentation for your application of choice.
Note: if you use a reverse proxy, you may need to configure the image server as well, so that it knows what external URLs are used to reach the image server. Whether this is necessary and how the image server needs to be configured, depends on the image server.
Set the paths for your chosen Image Server in admin » Islandora » Islandora Viewers » OpenSeadragon
Djatoka Image Server
When you use the Adore-Djatoka Image Server ("Djatoka"), you need to set the base URL to the Adore-Djatoka server OpenURL resolver. The base URL depends on the setup of Djatoka, including (optional) configuration of a reverse proxy.
By default, Islandora OpenSeadragon expects that the Djatoka OpenURL resolver is reachable on the same domain name and port as Islandora itself, at the path
adore-djatoka/resolver. A checkmark and confirmation message appear when Islandora can connect to the server. If Islandora cannot connect to the server, a cross and error message appear.
When you use the IIIF Image Server, you need to specify:
- the base URL of the image server;
- whether to send the image access token as a HTTP header instead of a query parameter;
- the pattern to use as the image identifier.
As with Djatoka, the base URL depends on the setup of your IIIF image server and reverse proxy, if you use one. Any IIIF image server can be used as the IIIF tile source. This IIIF server does need to be configured to resolve the image identifier to retrieve the image.
By default, Islandora OpenSeadragon uses the full URL to the image's JP2 datastream and the image access token as image identifier. If you use the Cantaloupe 🍈 IIIF image server, you can configure it to resolve these identifiers using the
HttpResolver with no prefix specified.
There are a lot of options to configure OpenSeadragon. Here are screenshots to every available option in the current version. Labels next to the fields explain what each option is for; this is therefore not repeated in this page.
Configure Image Server
- Note the option to select either an Adore-Djatoka Image Server or a IIIF Image server - you will be prompted after selecting with a field where you can enter your image server URL.
Configure Open Seadragon Tile Source Settings
- Note that interface documentation links will take you to relevant Seadragon documentation, not back to this page.
Open Seadragon Viewer Settings
Expanded Mouse Pointer Gesture Settings
Expanded Touch Pointer Gesture Settings
Expanded Pen Pointer Gesture Settings
Expanded Unknown Pointer Gesture Settings
Open Seadragon Viewer Settings (Continued)
Having problems? Check out the Islandora google groups for a solution. Have a solution (or a problem with these docs)? Share it with the community!