IIPImage now an official Fedora Package

Server, New Release 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

Server, JPEG2000, Case Study, IIPMooViewer 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

IIPImage now an Official Ubuntu Package

Server, New Release No Comments

IIPImage is now an official Ubuntu and Debian package! Version 0.9.9 of the IIPImage server is now distributed as part of the Ubuntu 12.10 Quantal Quetzal release.  It is also included in Debian’s Sid unstable branch, and testing branch from where it should migrate to become part of the forth-coming Debian 7 Wheezy release.

The Debian source package is available here: http://packages.debian.org/source/sid/iipimage and the Ubuntu lauchpad package here: https://launchpad.net/ubuntu/+source/iipimage

The package is split into two with a main server package: iipimage-server and a separate IIPImage documentation package: iipimage-doc

So, installing IIPImage is now extremely easy. To do so on Ubuntu 12.10, simply install iipimage-server via the graphical package manager or via the command line:

apt-get install iipimage-server

and optionally for the documentation:

apt-get install iipimage-doc

Now restart Apache and you should have the IIPImage server running on http://your.server/iipsrv/iipsrv.fcgi

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 server URL is /iipsrv/iipsrv.fcgi 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.

The package is configured to work with both Apache and Lighttpd. If you are using Apache, the configuration file is at /etc/apache2/mods-available/iipsrv.conf. For Lighttpd, /etc/lighttpd/conf-available/20-iipsrv.conf. See the server documentation page for details of the available parameters. The log file is at /var/log/iipsrv.log.

The package has Memcached support built in and will automatically use Memcached for caching if this is running on the host machine. If not, simply start it to allow IIPImage to use it.

To install on the current Debian, you will need to be on the testing (or unstable branch). If you are on testing, add an additional unstable source to /etc/apt/sources.list. See the testing documentation for further details. Make sure you first update your package index, then simply install as above.

If you want JPEG2000 support or don’t want to use the Debian testing or unstable branch, continue to use our stable but “unofficial” 0.9.9 Ubuntu packages that are compatible with Ubuntu 11.10 and 12.04.

Special thanks to Mathieu Malaterre for building and maintaining the official Debian package!

iipsrv now on Github

Server, JPEG2000, New Release No Comments

The latest development code for iipsrv, the IIPImage server is now hosted on Github. This should make things far easier for developers to share code and to submit patches. You can check out the repository here https://github.com/ruven/iipsrv

The latest code has a host of new features including:

  • Exact export resizing for both TIFF and JPEG2000
  • Improved interpolation algorithms for CVT export
  • Extended support for 1, 8, 16 and 32 bit images
  • Gamma support
  • Improved metadata handling
  • Performance improvements
  • Improved Windows compatibility
  • Bug fixes!

So, check it out and get forking!

Virtual Nanoscopy: Ultra-high resolution electron microscopy with IIPImage

Client, Server, Case Study, IIPMooViewer No Comments
Guest Post by Frank Faas & Raimond Ravelli, Department of Molecular Cell Biology, Leiden University Medical Center

The Leiden University Medical Centre in The Netherlands conducts a wide range of scientific research ranging from pure fundamental medical research to applied clinical research. Recently, our group in the Department of Molecular Cell Biology, published a paper entitled Virtual nanoscopy: Generation of ultra-large high resolution electron microscopy maps in the Journal of Cell Biology about a pipeline to acquire, combine and visualize electron microscopy images as panoramas of virtually unlimited size. The technique, named Virtual Nanoscopy, can reveal large macromolecules, organelles, cells, tissue, up to entire animal cross-sections.

Virtual slide of a sagittal section of a Zebrafish, imaged at 1.6 nm/pixel resolution over an area of 1.5 x 0.6 mm2

As a proof of principle we have put online a 281 gigapixel ultrastructural map of a 5 days old zebrafish embryo, which is a commonly used vertebrate model organism. The virtual slide was recorded at 120 kV with a magnification at the detector plane of 9460. A total of 26,434 unbinned 4k × 4k images was collected with a FEI Eagle CCD camera (>8 s readout time full frame) in 4.5 d. The sample was maintained at −1 µm defocus throughout the whole data collection. The resulting slide of 1,461 × 604 µm2 in size consists of 921,600 × 380,928 pixels of 1.6 nm square each.

The image shows the cartilage in slate blue, the eye in sienna, the brain in forest green, the muscles in salmon pink, the liver in indian red, the intestine in dark khaki, the pancreas in plum, the pronephric duct in yellow, the olfactory pit in lime green and the yolk in turquoise. Other examples can be found in the data section of our website.

Virtual nanoscopy has changed the way electron microscopy is carried out in our laboratory. Instead of collecting just a snapshot of part of a cell, we now routinely collect entire cross-sections which provides a much better context of the observed phenomena. Afterwards the data can be browsed as if behind a microscope at nanometer scale, hence the name virtual nanoscopy.

To visualise these images on the web we use the IIPImage server in combination with IIPMooviewer, both of which we adapted slightly to our needs. The images are stored as TIFF tiled image pyramids using the BigTIFF extensions available in libtiff 4.0 with a tile size of 256×256 pixels.

We can only recommend IIPImage and greatly appreciate the quick feedback from the developers. Many thanks to the developers of IIPImage for sharing their creation with the world!

by Frank Faas & Raimond Ravelli, Department of Molecular Cell Biology, Leiden University Medical Center

« Previous Entries Next Entries »

Flattr this

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