IIPImage now an Official FreeBSD Package

FreeBSD, New Release, Server No Comments

IIPImage is is now an official FreeBSD package. As of version 1.0 of iipsrv, the IIPImage server is now included as part of the FreeBSD ports package collection. The iipsrv package, net/iipsrv, has binary builds available for both 32 and 64bit FreeBSD. For the latest build information, see the build and package status page.


Installation is very straight-forward. Simply use the default FreeBSD package manager, pkg, to install:

sudo pkg install iipsrv

The pkg utility will install into /usr/local/ by default with the iipsrv.fcgi binary in /usr/local/bin/iipsrv.fcgi and a start-up script in /usr/local/etc/rc.d/iipsrv, which will allow you to easily run iipsrv in stand-alone mode. Note that this binary does not include Memcached or JPEG2000 support. If you require these, you will need to compile iipsrv manually.

Running iipsrv as an Independent Process

iipsrv can be started as a stand-alone process independent of the web server. The supplied rc start-up script can be used to start iipsrv with the following default command line flags:


This will start iipsrv in stand-alone (command line) mode listening on localhost ( and port 9111 and will be configured to create a log file in /tmp/iipsrv.log.

You can optionally modify various settings by adding them to /etc/rc.conf. For example:

# /etc/rc.conf iipsrv start-up configuration

# Enable iipsrv at system startup

# Specify IP address and port to bind to in stand-alone mode

# Environment parameters file for iipsrv

The /etc/iipsrv.conf file should contain start-up environment variables for iipsrv as described in the server documentation. For example:

# /etc/iipsrv.conf

You can then start the IIPImage server process using the following command:

/usr/local/etc/rc.d/iipsrv start

If you have set iipsrv_enable to YES in /etc/rc.conf, iipsrv will starting automatically on system reboot.

Ports also makes it possible to easily run multiple simultaneous instances of iipsrv. This is useful, for example, if you want different iipsrv settings or you want to serve different file trees for different sites etc. To do this, you should specify each instance in /etc/rc.conf as in the following example:

iipsrv_instances="site1 site2" 

Running iipsrv with a Web Server

The IIPImage server can also be started and managed directly by the Apache or Lighttpd web servers, rather than being run as an independent process.


For Apache, you will need to install an FCGI module and either mod_fcgid or mod_fastcgi can be used. To install with mod_fcgid:

sudo pkg install apache24 ap24-mod_fcgid

To enable the module, uncomment the following line in /usr/local/etc/apache24/http.conf

#LoadModule fastcgi_module libexec/apache24/mod_fcgid.so

Similarly to install with mod_fastcgi:

sudo pkg install apache24 ap24-mod_fastcgi

To enable the module, uncomment the following line in /usr/local/etc/apache24/http.conf

#LoadModule fastcgi_module libexec/apache24/mod_fastcgi.so

You will then need to configure Apache to manage iipsrv. See the Apache section of the iipsrv server documentation for more details.


The Lighttpd web server includes FCGI support by default, so simply install:

sudo pkg install lighttpd

Then enable fastcgi in the modules configuration file (/usr/local/etc/lighttpd/modules.conf). You should then add the iipsrv directives to the Lighttpd FastCGI configuration file (/usr/local/etc/lighttpd/conf.d/fastcgi.conf). See the iipsrv server documentation for Lighttpd for more details.

Other Web Servers

For web servers such as NginX or Apache Java Tomcat, which cannot start FCGI processes themselves, you should start iipsrv in stand-alone mode as explained above and configure your server to point to the IP address and port configured for iipsrv. See the server documentation for NginX or for Tomcat for more details.


iipsrv 1.0

IIIF, JPEG2000, Mac OS X, New Release, Optimization, Protocol, Server No Comments

Version 1.0 of iipsrv, the IIPImage server, is now officially released! This is a major new version containing a whole host of new features, major performance enhancements, optimizations, numerous bug-fixes and stability enhancements. Major new features include support for the IIIF protocol, 32 bit floating point data support and several new image processing commands.

New features include:

Read the rest…

Web-Based Visualization of Very Large Scientific Astronomy Imagery

Client, Server No Comments

IIPImage has been adopted by a number of users in the astronomy community due to it’s ability to handle both very large images and scientific-grade quantitative data. See, for example, this post from the Wide Field Astronomy Unit about putting online a massive image of our galaxy containing 1 billion stars. Although the image in that example is very large (the TIFF is over 150GB in size), the original scientific data has been reduced to 8 bits per channel for visualization purposes.

However, much astronomy data (and indeed scientific data in general), is in quantitative linear floating point format, requiring 32 bits per channel. Having access to such quantitative image data at this level of precision and dynamic range is important for carrying out scientific data analysis. And there are major benefits from having remote access to very large floating point data in a number of tasks in astronomy, astrophysics and planetary science.

VisiOmatic client with 1TB floating point image, vector layers and image profile visualization.

IIPImage and VisiOmatic: 1TB floating point image, vector layers and image profile visualization

New Server Features

IIPImage already handled 8 and 16 bit per channel data and full 32 bit support for both integer and floating point has now been added in association with the Institute of Astrophysics and the Geosciences Laboratory of the University of Paris Sud. Much of the core image processing within iipsrv is now carried out using 32 bits of dynamic range, enabling real-time access to and the real-time processing of extremely large scientific data sets.

The speed and scalability of the IIPImage server is one of its most important features. The use and processing of floating point data is far more memory and computationally expensive than for standard 8 bit data and could have had an impact on server performance. iipsrv has, therefore, been heavily optimized to minimize this, which has also significantly improved speeds for all types of image. Improvements have also been made to iipsrv’s handling of extremely large images and it is now able to comfortably and efficiently handle terabyte size images of any bit depth.

In addition, a number of other important new features have been added to the IIPImage server, that although aimed at astronomy applications, are useful in a wide range of disciplines:

  • Gamma correction (GAM parameter)
  • Minimum and maximum cuts (MINMAX parameter)
  • Full resolution data profiles (PFL parameter)
  • Dynamic color-mapping (CMP parameter)

These features are available in the latest server code on GitHub and will form part of the forthcoming 1.0 server release. For more details on the syntax for the new parameters, see the IIP protocol documentation.

In terms of file formats for floating point data, TIFF is not only able to store 8 bits per channel images, but also 16 bit and both 32 bit integer and 32 bit floating point data, meaning that all the standard TIFF imaging software pipeline can continue to be used with IIPImage. See the image documentation for more details on image formats and the software STIFF for generating TIFF files suitable for IIPImage from FITS data.

Read the rest…

Current Trends and Future Directions for Digital Imaging in Libraries and Archives

JPEG2000, Server No Comments

Current Trends and Future Directions for Digital Imaging in Libraries and Archives was a one-day workshop on JPEG2000 organized by the Wellcome Library and the Digital Preservation Coalition (DPC). The event took place on the 10th November 2014 at the Wellcome Trust in London and brought together a range of specialist practitioners with experience of JP2K for digital libraries and digital archives.

IIPImage presentation at the Wellcome Trust

The workshop examined current and emerging practice with JPEG2000 and sought to enable a debate about future directions for the format.  There were a number of case studies and presentations of tools and JP2K workflows with consideration given to how these developments can inform and extend preservation practice for image archives, digital photography and digitization.

The programme included talks from the Wellcome Library itself, Oxford University’s Bodleian library, the National Library of the Netherlands and the British Library. And the results of a JPEG2000 use survey in the cultural heritage sector.

In addition, there were presentations on tools including the JPEG2000 validation tool jpylyzer, the Goobi library workflow system and a presentation on the status of OpenJPEG, the principal open source JPEG2000 implementation today. And, of course, there was a presentation on IIPImage.

The IIPImage server has had support for JPEG2000 since version 0.9.9 of the server and it is already used for JPEG2000 by a number of major libraries including the Wellcome Library, Oxford University’s Bodleian Library, the French National Library (the BNF) and several university research libraries. The IIPImage talk was entitled IIPImage and a Performance Analysis of JPEG2000 Encoding Parameters, which looked at IIPImage itself, case studies of IIPImage use and some live demos showing some advanced uses of IIPImage. The presentation also looked at how to optimize JPEG2000 encoding parameters, showing the results of a preliminary study on how code block, precinct and tile size affect the resulting JPEG2000 file size, the encoding time and crucially, the time to decode a region, which is a key criteria for image servers such as IIPImage. A more detailed look at these results will be the subject of a future post.

The programme of the event and the various presentations are available from the Digital Preservation Coalition page for the event and the IIPImage presentation is available below:

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…

« Previous Entries

Flattr this

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