Provided by: iipimage-server_1.1-3build1_amd64 

NAME
IIPSRV - IIPImage Image Server
DESCRIPTION
IIPImage is an advanced high-performance feature-rich multi-protocol image server for web-based streamed
viewing and zooming of ultra high-resolution images. It is designed to be fast and bandwidth-efficient
with low processor and memory requirements. The system can comfortably handle gigapixel size images as
well as advanced image features such as 8, 16 and 32 bit depths, CIELAB colorimetric images and
scientific imagery such as multispectral images. Source images can be either TIFF (tiled multi-
resolution) or JPEG2000 (if enabled).
The image server can also dynamically export images in JPEG format and perform basic image processing,
such as contrast adjustment, gamma control, conversion from color to greyscale, color twist, region
extraction and arbitrary rescaling. The server can also export spectral point or profile data from
multispectral data and apply color maps or perform hillshading rendering.
SYNOPSIS
Command line use:
iipsrv.fcgi --bind host : port
FILES
iipsrv.fcgi main executable
iipsrv.log log file: usually in /var/log/ or /tmp/
OPTIONS
There are several parameters that can be supplied to iipsrv.fcgi These should be set via the appropriate
web server configuration directives if running via Apache or Lighttpd. See EXAMPLES for details of web
server configuations. Alternatively these parameters can be set via environment settings if running
directly from the command line or from spawn-fcgi.
LOGFILE
The log file the module will (attempt) to write to. If no value is given, no log will be written.
Make sure the server process has write access to this directory. Paths with spaces in them may not
work correctly. Version 1.1 and later of iipsrv also supports logging to syslog if "syslog" is
given as the value.
VERBOSITY
The level of logging. 0 means no logging, 1 is minimal logging, 2 lots of debugging stuff and 3
even more debugging stuff and 4 a very large amount indeed. Logging is only enabled if LOGFILE has
also been defined.
JPEG_QUALITY
The default JPEG quality factor for compression when the client does not specify one. The value
should be between 1 (highest level of compression) and 100 (highest image quality). The default is
75.
MAX_IMAGE_CACHE_SIZE
Max image cache size to be held in RAM in MB. This is a cache of the compressed JPEG image tiles
requested by the client. The default is 5MB.
FILESYSTEM_PREFIX
This is a prefix automatically added by the server to the beginning of each file system path. This
can be useful for security reasons to limit access to certain sub-directories. For example, with a
prefix of "/home/images/" set on the server, a request by a client for "image.tif" will point to
the path "/home/images/image.tif". Any reverse directory path component such as ../ is also
filtered out. No default value.
MAX_CVT
The maximum permitted image pixel size returned by the CVT command in conjunction with WID or HEI
or RGN. The default is 5000. This prevents huge requests from overloading the server
ALLOW_UPSCALING
Determines whether an image may be rendered at a size greater than that of the source image. A
value of 0 will prevent upscaling. The default is 1 (upscaling is allowed).
MAX_LAYERS
The maximum number of quality layers to decode for image that support progressive quality
encoding, such as JPEG2000. Ignored for other file formats. By default half of the available
layers are decoded. If set to -1, all the available layers will be decoded.
WATERMARK
TIFF image to use as watermark file. This image should be not be bigger the tile size used for
TIFF tiling. If bigger, it will simply be cropped to the tile size. If smaller, the watermark will
be positioned randomly within the available space. The image can be either colour or grayscale.
WATERMARK_PROBABILITY
The probability that a particular tile will have a watermark applied to it. 0 means never, 1 means
always.
WATERMARK_OPACITY
The opacity (between 0 and 1) applied to the watermark image.
MEMCACHED_SERVERS
A comma-delimitted list of memcached servers with optional port numbers. For example:
localhost,192.168.0.1:8888,192.168.0.2.
MEMCACHED_TIMEOUT
Time in seconds that cache remains fresh. Default is 86400 seconds (24 hours).
FILENAME_PATTERN
Pattern that follows the name stem for a panoramic image sequence. eg: "_pyr_" for
FZ1_pyr_000_090.tif. In this example, just supply FZ1 to the FIF command. The "000" indicates the
vertical angle and "090" the horizontal. This is only relevant to 3D image sequences. The default
is "_pyr_".
INTERPOLATION
Interpolation method to use for rescaling when using image export. Integer value. 0 for fastest
nearest neighbour interpolation. 1 for bilinear interpolation (better quality but about 2.5x
slower). Bilinear by default.
CORS Cross Origin Resource Sharing setting. Disabled by default. Set to "*" to enable for all domains
or specify a single domain. See http://www.w3.org/TR/cors/ for more details on CORS.
BASE_URL
Set a base URL for use in certain protocol requests if web server rewriting has taken place and
the public URL is not the same as that supplied to iipsrv
URI_MAP
Set a mapping from a URL prefix to a supported protocol. This enables iipsrv to be able to work
without requring full CGI query strings. Map must be of the form "prefix=>protocol" where prefix
can be either empty or any string prefix and protocol must be one of IIP,IIIF,DeepZoom, Zoomify.
Used, for example, to map requests of the form http://server/iiif/ to the IIIF protocol handler
without requiring web server rewriting.
CACHE_CONTROL
Set the HTTP Cache-Control header. See
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 for a full list of options. If not
set, header defaults to "max-age=86400" (24 hours).
EMBED_ICC
Set whether the ICC profile is embedded within the output image. 0 to strip profile, 1 to embed
profile. The default is 1 (embedded profiles).
OMP_NUM_THREADS
Set the number of OpenMP threads to be used by the iipsrv image processing routines (See OpenMP
specification for details). All available processor threads are used by default.
KAKADU_READMODE
Set the Kakadu JPEG2000 read-mode. 0 for 'fast' mode with minimal error checking (default), 1 for
'fussy' mode with no error recovery, 2 for 'resilient' mode with maximum recovery from codestream
errors. See the Kakadu documentation for further details.
EXAMPLES
iipsrv will be automatically started by both Apache and Lighttpd. But not by Nginx or Java Application
Servers. See the example configuration in the README or included with your distribution for the
appropriate syntax. Note that Apache has two FCGI modules: mod_fastcgi and mod_fcgid which are
configured differently.
You may also wish to run iipsrv as a standalone program. To do this, use the following syntax to bind to
a particular port and listen for FCGI (not HTTP) requests. In the following example, iipsrv will bind to
port 9000 on the machine's IP address 192.168.0.1:
% iipsrv.fcgi --bind 192.168.0.1:9000
There is additionally a --backlog parameter that is optional and sets the socket backlog value. The
backlog value specifies the number of requests can be queued and, therefore, increases the number of
concurrent connections that iipsrv can handle and is set to 2048 by default. For example:
% iipsrv.fcgi --bind 192.168.0.1:9000 --backlog 1024
Note that the backlog parameter must be specified after the bind parameter and argument. Note also that
this value may be limited by the operating system. On Linux kernels < 2.4.25 and Mac OS X, the backlog
limit is hard-coded to 128, so any value above this will be limited to 128 by the OS. If you do provide a
backlog value, verify whether the setting /proc/sys/net/core/somaxconn should be updated.
It is also possible to run iipsrv via the spawn-fcgi program. Set up any parameters via environment
variables and run the command as follows to bind, as in the previous example to port 9000 on IP address
192.168.0.1:
% spawn-fcgi -f src/iipsrv.fcgi -a 192.168.0.1 -p 9000
For use in stand alone or spawn-fcgi mode, you will then need to configure your webserver on the same
machine or another to direct FCGI protocol requests to this IP address and port.
For web servers such as Nginx or Java Application Servers such as Tomcat, JBoss or Jetty, which cannot
automatically start FCGI processes, iipsrv will need to be started in stand alone mode or via spawn-fcgi.
PROTOCOLS
The IIPImage server supports the Internet Imaging Protocol (IIP) , the Zoomify protocol, the DeepZoom and
the International Image Interoperability Framework (IIIF) protocols. Client applications supporting these
protocols should be able to use iipsrv as their back-end server. IIP is the most feature rich of the 4
protocols and allows access to the more advanced imaging server features.
IMAGE PATHS
The image paths given to the server must be absolute paths on the server machine (eg. via the FIF
variable for the IIP protocol: FIF=/images/test.tif) and not paths relative to the web server document
root location. If the FILESYSTEM_PREFIX server directive has been set (see OPTIONS above), then this
prefix is automatically pre-pended to all requests to generate the absolute image path. Make sure that
the server process owner is able to access and read the images.
Note that images do not need to be directly accessible externally by the client via the web server.
SEE ALSO
IIPImage website: https://iipimage.sourceforge.io
AUTHORS
Ruven Pillay <ruven@users.sourceforge.net>
Ruven Pillay June 2019 IIPSRV(8)