Imgserv

imgserv is a Java-based, network-accessible image scaling and transcoding server. It can:

Only MediaWiki 1.13 or higher is supported
 * Resize images
 * Resize very large PNGs using a constant amount of memory
 * Transcode images (e.g. convert GIFs to PNGs)
 * Rasterize SVGs

Download the latest release from tools.wikimedia.de.

Installing the server
Extract the archive and run bin/run.sh to start imgserv:

You can configure some parts of imgserv in a configuration file; copy imgserv.conf.example to imgserv.conf and start imgserv like this:

imgserv will automatically support transcoding and standard resizing. See below to enable pngds for constant-memory PNG resizing.

Installing the client
Download the latest client from tools.wikimedia.de. Edit Makefile if necessary and type make to compile it. Install imgserv and imgserv-wrapper in a convenient directory (you will probably need to edit imgserv-wrapper to fix the path).

To use imgserv for SVGs, add this to your :

And for bitmap scaling:

Enabling pngds
This is still very experimental. You might find it doesn't work properly, or causes imgserv to crash.

pngds is a library that allows fast resizing of very large PNG images without large memory usage. To enable pngds support in imgserv:


 * Download the current pngds from tools.wikimedia.de.
 * cd to pngds/jni/ and run:

should be one of these options: solaris, solaris-gcc, linux.


 * Copy libpngds.so to a convenient location (e.g. /usr/local/lib).
 * Add this to imgserv.conf:

Using /tmp is not secure on a multiuser server. Use a directory that only the user running imgserv can write to.

imgserv will now use pngds to resize PNGs.