IIIF – The International Image Interoperability Framework

IIIF, Protocol, Server No Comments

IIIF - The International Image Interoperability FrameworkThe International Image Interoperability Framework (IIIF) is a protocol for standardized image retrieval created by a community of the world’s leading research libraries, major national libraries and not-for-profit image repositories in an effort to collaboratively produce an interoperable technology and community framework for image delivery.

These include the research libraries of the universities of Stanford, Yale, Harvard, Cornell and Oxford University’s Bodleian Library. National Libraries including the British Library, the BNF (the French national library) and the Royal Library of Denmark. And not-for-profit image repositories including the Wellcome Trust’s Library.

The goals of the project are to:

  • Give scholars an unprecedented level of uniform and rich access to image-based resources hosted around the world
  • Define a set of common application programming interfaces (APIs) that support interoperability between image repositories
  • Develop, cultivate and document shared technologies, such as image servers and web clients, that provide a world-class user experience in viewing, comparing, manipulating and annotating images

IIIF consists of an image API and a presentation API. The Presentation API provides structural and presentation information, whereas the image API provides a standard image delivery API.

The IIPImage server, iipsrv fully supports version 2.0 of the image API in the development code on github and this will be included in the forth-coming 1.0 release of iipsrv. (If you need IIIF API 1.x compatibility, use this earlier iipsrv-based implementation by Klokan Technologies).

The image API syntax is essentially the following:


where it is possible to specify a region within an image, the size at which the image should be output, rotation, mirroring and whether the output should be greyscale or color. Sizes can be expressed in either absolute pixels or percentages; and rotations of 90°, 180° and 270° are supported by iipsrv.

For example, to export an image test.tif uncropped, resized to 400×400 pixels, rotated by 90° and converted to greyscale, use the following URI:


Image metadata and a list of server capabilities is available through an info.json request, which provides information on the image and the functionality provided by the image server:


iipsrv supports full level 1 compliance of the specification and almost all of level 2 (currently only missing PNG export). As well as optional advanced IIIF features such as mirroring and resizing to > 100%. The server also passes the online IIIF validator conformance tests.

The protocol can be used in parallel to the existing IIPImage support for the IIP, DeepZoom and Zoomify protocols within both iipsrv and iipmooviewer.

More information on the IIIF initiative is available from the IIIF website, including a list of IIIF compliant software and a showcase of IIIF in action, which includes, of course, IIPImage:

Read the rest…

IIPImage Case Study: National Gallery of Art, Washington

Case Study, Client, IIPMooViewer, Server No Comments
Guest Post by David Beaudet, Alan Newman & Kenneth Fleisher, National Gallery of Art, Washington
Elevated view of the National Gallery of Art with the U.S. Capitol from northwest at night, c. 1990. ©Dennis Brack/Black Star.  National Gallery of Art, Washington, D.C., Gallery Archives

Elevated view of the National Gallery of Art with the U.S. Capitol from northwest at night, c. 1990. ©Dennis Brack/Black Star.  National Gallery of Art, Washington, D.C., Gallery Archives

The National Gallery of Art (NGA) has been using IIPImage since the 2010 online release of The History of the Accademia di San Luca research project. The zoom feature of this website uses a slightly customized IIPImage  JavaScript client to permit the viewer to inspect 1,000 high-resolution scans of historical manuscripts dating back to the sixteenth century.  Our experience with IIPImage on the San Luca project was encouraging.  The IIPImage server software performed well under load and was able to quickly render zoomed portions of imagery to web-browser-based clients.

In 2012 we embarked on a sustained internal development effort to redesign the NGA public website from the ground up.  An important objective of the redesigned site was to make high-resolution art images available for as much of the Gallery’s collection as possible and to make ultra-high-resolution images available for the highlights of the collection.  Although IIPImage seemed to us a natural choice, we nonetheless conducted a fresh study in spring 2012 of the available zoom servers and clients, which only reinforced our prior conclusion that IIPImage is the best image zoom package for viewing art objects.

IIPImage with high resolution Jean-Honorè Fragonard's Young Girl Reading, c. 1770, oil on canvas, National Gallery of Art

IIPImage with ultra high resolution image of Jean-Honorè Fragonard’s Young Girl Reading, c. 1770, oil on canvas, National Gallery of Art

Important requirements for the zoom server on the redesigned public website include:

  1. Must provide a fast and efficient server-side engine using open standard file formats
  2. Must provide client software based on open standards, i.e. pure HTML + JavaScript with an upgrade path to HTML5 rather than proprietary technologies requiring a browser plugin
  3. Must be able to operate from as few source images as possible (ideally a single zoom file) rather than requiring a multitude of pre-generated zoom tiles for each image
  4. Should retain and reproduce accurate color information from source imagery to the web browser on the client side
  5. Preferably based on open source software and released under open source license in case it needs to be modified to suit our purposes
  6. For future endeavors, the tool should provide auxiliary services to generate on-the-fly renditions of zoom images of arbitrary size and location

The IIPImage solution was able to meet most of these requirements.  In April 2013 when the redesigned www.nga.gov website launched, it included dozens of ultra-high-resolution images for collection highlights and thousands of high resolution images of paintings.  Since launch the NGA’s rapid capture project added tens of thousands of additional high-resolution digital photographs of works on paper, including (by September 2014) the full set of images of watercolors from the Gallery’s Index of American DesignRapid Capture is an ongoing endeavor that seeks to produce high-resolution digital imagery for nearly all works on paper within the Gallery’s collections.

A year later, in April 2014, a major set of enhancements to www.nga.gov was released. National Gallery of Art Online Editions debuted its first edition, Dutch Paintings of the Seventeenth Century, as part of the Getty Foundation’s Online Scholarly Catalogue Initiative (OSCI). The site includes scholarly research on more than 120 paintings and dozens of artists as well as X-ray, infrared, and ultraviolet band art images, some of which have led to new insights and fascinating discoveries.

Color and Xray comparison of Vermeer's Girl with the Red Hat

Color and Xray comparison of Vermeer’s Girl with the Red Hat, c. 1665/1666, oil on panel, National Gallery of Art

The HTML5 IIPMooviewer client was customized to allow registered technical images to be faded in and out with a transparency control while overlaid on top of the visible light image. In addition, when registered technical images are selected, the zoom and pan settings can be locked so that one set of controls is used to navigate two images.

Read the rest…

The Cranach Digital Archive

Case Study, IIPMooViewer, Server No Comments

Guest Post by Gunnar Heydenreich & Jörg Stahlmann, Cranach Digital Archive

Cranach Digital Archive

Cranach Digital Archive

The Cranach Digital Archive (cda) is an interdisciplinary collaborative research resource, providing access to art historical, technical and conservation information on paintings by Lucas Cranach (c.1472-1553), his sons and his workshop. The repository has been available online since January 2012 and currently provides information on more than 700 paintings including around 8000 images and documents from 92 contributing institutions, including major museums such as the Metropolitan Museum in New York, the National Gallery in London, the Getty Museum in Los Angeles, the Alte Pinakothek in Munich and many more. The archive contains over 400 infrared-reflectograms, 200 X-radiographs, numerous technical reports and a literature database with more than 2100 entries.

The project started in 2009 and is currently in its second phase (2012-2014). During this period, the Cranach Digital Archive aims to expand the existing network, to develop a shared infrastructure and to increase its content in order to build the foundations for an innovative, comprehensive and collaboratively produced repository of knowledge about Lucas Cranach and his workshop that will be significantly different from the traditional model of the single-author catalogue raisonné.

The Cranach Digital Archive is a joint initiative of the Stiftung Museum Kunstpalast in Düsseldorf and the Cologne Institute of Conservation Sciences / Cologne University of Applied Sciences in collaboration with nine founding partner institutions, 18 associate partners and many project contributors. The project is funded by the Andrew W. Mellon Foundation.

Detail of infrared-reflectogram showing fluid underdrawing on 'Lamentation of Christ' (1503), Alte Pinakothek, Munich.

Detail of infrared-reflectogram showing fluid underdrawing on ‘Lamentation of Christ’ (1503), Alte Pinakothek, Munich.

For the Cranach Digital Archive we were required to create an online web presence accessible to everybody which should include a digital archive connecting all collected information of an object and be capable of delivering high resolution zoomable images. In collaboration with the Düsseldorf Art Archive (d:kult), we modified the existing structure in the collection management system TMS to store information from Word documents and thumbnail link-references to PDFs and images. The task was then to unite the various existing structures, which included TMS, a lot of additional information in the form of static Word and PDF documents and a large number of images in various formats and sizes to create a user friendly web database.

The collection management software acts as a version control system giving us the possibility to work and test the data provided by our project partners and entered or generated by our team before publishing it. In order to update we export all data from TMS to XML format, generating 4 different documents with Overall, Conservation, Literature and Thesauri-Data, each of which can be up to 50MB  in size and contain thousands of entities and attributions. An application written in Java parses the documents and inserts or updates the data in our database.

For our infrastructure we decided to use a locally hosted server, due to the fact that our data and images would create an immense amount of traffic if uploading was carried out via the internet. Our server system is based on Ubuntu (long term support version) and the Apache web server, though we are considering switching to Zend-Server for performance reasons. Also we decided to work with a standard open source database and of course with IIPImage.

The IIPImage server system allows us to view, navigate and zoom our high resolution images in real-time. With more than 8000 images currently available, the IIPImage server combined with tiled multi-resolution TIFF images is the perfect tool to comfortably and efficiently remotely browse the high resolution images within the digital archive. The images were batch converted using a shell script, using the free image processing system VIPS. Compared to most image processing libraries, VIPS requires little memory and runs quickly and efficiently, especially on parallel multi-processor machines.

For security reasons we are happy that IIPImage provides us with the possibility to place the source TIFF images outside of the web server’s document root. The images are streamed and can only be viewed via the IIPImage viewer. We are looking at ways to optimize this and to enrich the resource as well as to implement new tools.

by Gunnar Heydenreich & Jörg Stahlmann, Cranach Digital Archive

IIPImage now an official Fedora Package

New Release, Server No Comments

IIPImage is now an official stable Fedora package and is included out of the box with the new release of Fedora 19! The package is based on a recent build of the development version of iipsrv available from the Github repository.

Information on the Fedora packages is available at https://apps.fedoraproject.org/packages/iipsrv with the package source at http://pkgs.fedoraproject.org/cgit/iipsrv.git

The packages are also included in Fedora-based enterprise distributions such as CentOS and Red Hat Enterprise Linux via the EPEL repository.

To install, simply use the default yum package manager:

sudo yum install iipsrv

This will install the IIPImage server in /usr/libexec/iipsrv/iipsrv.fcgi


To use with Apache, you will need to also install the Apache configuration files:

sudo yum install iipsrv-httpd-fcgi

which will install the configuration file iipsrv.conf in /etc/httpd/conf.d/. Modify this if necessary. You can find a full list of possible server parameters here. You will then need to start Apache (or restart if it is already running):

sudo service restart httpd

You should now have the IIPImage server running at  http://your.server/iipsrv


There is no Lighttpd package at the moment, but to use iipsrv with lighttpd, first install lighttpd and it’s fcgi module (if not already installed):

sudo yum install lighttpd-fastcgi

Then add the following to the fastcgi configuration file /etc/lighttpd/conf.d/fastcgi.conf:

fastcgi.server = ( "/iipsrv" =>
  (( "socket" => "/tmp/iipsrv-fastcgi.socket",
     "check-local" => "disable",
     "min-procs" => 1,
     "max-procs" => 1,
     "bin-path" => "/usr/libexec/iipsrv/iipsrv.fcgi",
     "bin-environment" => (
        "LOGFILE" => "/tmp/iipsrv.log",
        "VERBOSITY" => "2",

and activate fastcgi by uncommenting the following line from /etc/lighttpd/modules.conf:

Include "conf.d/fastcgi.conf"

Then start / restart lighttpd:

sudo service restart lighttpd

This will start the IIPImage server at http://your.server/iipsrv

Running as a Service

It is also possible to start the IIPImage server as an independent service without Apache or Lighttpd:

sudo service start iipsrv

which will start the server listening by default on on port 9002. For the systemd-based Fedora, this is configurable by following the instructions in /lib/systemd/system/iipsrv.service. For sysv-based RHEL distributions, this is configurable in /etc/iipsrv/iipsrv.conf. Starting iipsrv this way allows you to use it with Nginx, Tomcat or if you are hosting your web server on a different machine and wish to proxy requests to iipsrv.

Note that if you are using SELinux, connections from Apache to unknown ports are not allowed by default. To fix this, use semanage, the SELinux policy management tool to add it:

sudo semanage port -a -t http_port_t -p tcp 9002


Only the server is included in this package, so you will need to install a client, such as IIPMooViewer or IIPZoom yourself. Note that the default server URL is /iipsrv and not the usual /fcgi-bin/iipsrv.fcgi, so don’t forget to set this correctly in the viewer configuration of IIPMooViewer, IIPZoom or whichever viewer you choose to use.

Many thanks to Johan Cwiklinkski for creating the package. You can find more details on his blog and on the Redhat bugzilla review.

Open Access with IIPImage at Ghent University Library

Case Study, IIPMooViewer, JPEG2000, Server No Comments

The Book Tower, Ghent University Library

Guest Post by Nicolas Franck, Ghent University Library

Ghent University Library (Belgium) – better known as the “Book Tower” – started digitizing its collections back in 2004. It has a wide variety of material, ranging from books, manuscripts, papyri, posters, coins to drawings and old maps. From the beginning, the main purpose was to provide its audience – mainly researchers and students – open access to its digital content online.

A website was created with a search interface, and a commercial viewer (EREZ viewer) to view the digital images online at http://adore.ugent.be

But in 2010 we decided to create a new website with more possibilities, and to use an open source software to view our images online. We needed software that was fast, reliable, open source and that used the new possibilities of HTML5.

That is where IIPImage came in. The IIPMooviewer client was slightly adapted to our needs with, for example, the addition of a zoom level indicator.

Some of the resources consists of more than one image, such as scans belonging to a book. So we created a carousel, that wraps IIPMooviewer within an iframe. See this example showing Liber Floridus a rare 12th century medieval encyclopaedia of Flanders: http://adore.ugent.be/OpenURL/app?id=archive.ugent.be:018970A2-B1E8-11DF-A2E0-A70579F64438&type=carousel&scrollto=60:

Liber Floridus – book page carousel wrapping iipmooviewer

The raw images are first converted to 8 bit sRGB using PerlMagick before conversion to JPEG2000 format with Kakadu using the following parameters:

kdu_compress -i input.tif -o output.jp2 -quiet -rate 24 Clayers=8 Clevels=8
    Cprecincts="{256,256},{256,256},{128,128}" Corder=RPCL ORGgen_plt=yes
    ORGtparts=R Cblk="{64,64}" Cuse_sop=yes -no_palette -num_threads 4

Trajan’s Column

This results in a maximum of 8 resolution levels and 8 quality layers with a precinct size of 256×256 pixels. They are stored with lossy compression to reduce the file size, but with a high encoding rate of 24 bits per pixel.

The largest image is this 1774 etching of Trajan’s column by the Italian artist Giovanni Battista Piranesi (1720-1778). The scan is 832 megapixels in size (15261×54519 pixels). The compressed JPEG2000 file itself is about 400MB in size, while the uncompressed image was 2GB in size.

Interactive viewer: http://adore.ugent.be/OpenURL/resolve?rft_id=archive.ugent.be:EBFE8CFC-AC6F-11E1-81A7-AD7FAAF23FF7:1&svc_id=zoomer&url_ver=Z39.88-2004

JPEG2000 file download: http://adore.ugent.be/OpenURL/resolve?rft_id=archive.ugent.be:EBFE8CFC-AC6F-11E1-81A7-AD7FAAF23FF7:1&svc_id=original&url_ver=Z39.88-2004

We use Red Hat Enterprise Linux Server release 6.2 with Nginx as the web server. The iipsrv process is started via an init-script using spawn-fcgi:

export VERBOSITY="1"
export FILENAME_PATTERN="_pyr_"
export JPEG_QUALITY="100"
export MAX_CVT="300"
spawn-fcgi -f /path/to/iipsrv.fcgi -U iipsrv -u iipsrv
                          -s /var/run/iipsrv.socket -n

As you can see, a Unix socket is created and Nginx uses its fastcgi-module to proxy all requests to /iip to this socket. Although the IIPImage server has it own methods of caching its results, we decided to let Nginx cache the results itself, to lower the number of requests to the backend server.The IIPImage-server can be reached through this proxy at http://adore.ugent.be/iip.

by Nicolas Franck, Ghent University Library

« Previous Entries Next Entries »

Flattr this

Donations appreciated Bookmark and Share
Get IIPImage at SourceForge.net. Fast, secure and Free Open Source software downloads