IIPSRV(8)
β¨ NAME β¨
IIPSRV β the IIPImage Image Server, and yes bestie, this is IIPSRV(8) from the System Manager's Manual, so buckle up π
π¦ DESCRIPTION π¦
okay so. 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's built to be fast and bandwidth-efficient, with low processor and memory requirements. Like, this thing can comfortably handle gigapixel size images π and it also does 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). no cap.
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. it's giving β¨multitalentedβ¨
πΈ SYNOPSIS πΈ
Command line use, so real:
iipsrv.fcgi --bind host : port
π FILES π
iipsrv.fcgiβ the main executable, the main character, the moment π«Άiipsrv.logβ the log file: usually lives 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 you're running via Apache or Lighttpd β see EXAMPLES for the details of web server configurations. Alternatively, these parameters can be set via environment settings if running directly from the command line or from spawn-fcgi. either way, slay π
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 π (so tragic). Version 1.1 and later of iipsrv also supports logging to syslog if"syslog"is given as the value.VERBOSITYβ the level of logging.0means no logging,1is minimal logging,2lots of debugging stuff,3even more debugging stuff and4a very large amount indeed. Logging is only enabled ifLOGFILEhas also been defined. (yes, both. it's a package deal.)JPEG_QUALITYβ the default JPEG quality factor for compression when the client does not specify one. The value should be between1(highest level of compression) and100(highest image quality). The default is75.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 is5MB.FILESYSTEM_PREFIXβ a prefix the server automatically adds 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. π₯ security queenMAX_CVTβ the maximum permitted image pixel size returned by theCVTcommand in conjunction withWIDorHEIorRGN. The default is5000. This prevents huge requests from overloading the server. π no giant requests allowedALLOW_UPSCALINGβ determines whether an image may be rendered at a size greater than that of the source image. A value of0will prevent upscaling. The default is1(upscaling is allowed).MAX_LAYERSβ the maximum number of quality layers to decode for images 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 not be bigger than 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. π cute AND functionalWATERMARK_PROBABILITYβ the probability that a particular tile will have a watermark applied to it.0means never,1means always.WATERMARK_OPACITYβ the opacity (between0and1) 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 is86400seconds (24 hours).FILENAME_PATTERNβ pattern that follows the name stem for a panoramic image sequence. eg:"_pyr_"forFZ1_pyr_000_090.tif. In this example, just supplyFZ1to theFIFcommand. 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.0for fastest nearest neighbour interpolation.1for 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. Seehttp://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 ofIIP,IIIF,DeepZoom,Zoomify. Used, for example, to map requests of the formhttp://server/iiif/to the IIIF protocol handler without requiring web server rewriting. iykyk πCACHE_CONTROLβ set the HTTP Cache-Control header. Seehttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9for 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.0to strip profile,1to embed profile. The default is1(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. π multithreading eraKAKADU_READMODEβ set the Kakadu JPEG2000 read-mode.0for 'fast' mode with minimal error checking (default),1for 'fussy' mode with no error recovery,2for '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. (two modules, two whole vibes, fr fr.)
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 that 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. β οΈ order matters bestie
Note also that this value may be limited by the operating system. On Linux kernels <2.4.25and Mac OS X, the backlog limit is hard-coded to128, so any value above this will be limited to128by the OS. If you do provide a backlog value, verify whether the setting/proc/sys/net/core/somaxconnshould 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. periodt. π
π 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. 4 protocols, one icon π
π§ 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. π₯ permissions check, do it
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>
and that's the whole page, bestie π huge shoutout to Ruven Pillay for writing this, June 2019 era, and this whole thing is IIPSRV(8) from the System Manager's Manual β go forth and serve some gigapixel images β¨πΈπ
π¦ where this page comes from
- debian bookworm: iipimage-server 1.1-3+b2 Β· GPL
- debian trixie: iipimage-server 1.1-3+b4 Β· GPL
- ubuntu jammy: iipimage-server 1.1-3build1 Β· GPL
- ubuntu noble: iipimage-server 1.1-3build4 Β· GPL
- ubuntu questing: iipimage-server 1.1-3build4
- ubuntu resolute: iipimage-server 1.1-3build5 Β· GPL
- ubuntu stonking: iipimage-server 1.1-3build5 Β· GPL
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms