Manual:$wgSVGConverters

From MediaWiki.org
Jump to: navigation, search

Other languages:
English • ‎日本語 • ‎polski
SVG: $wgSVGConverters
List of paths to Scalable Vector Graphics (SVG) converters.
Introduced in version: 1.4.0
Removed in version: still in use
Allowed values: array (see below)
Default value: see below
Other settings: Alphabetical | By function

Details[edit]

Scalable Vector Graphics (SVG) may be uploaded as images. However, SVG support in browsers is patchy – in particular, Internet Explorer before version 9 could not understand the SVG format at all.

Therefore, it is necessary to convert SVG format images to PNG format as a fallback. An external program is required to perform this conversion.

This array contains a list of SVG conversion programs and the command line for each one. To select which one to use on your system, set $wgSVGConverterManual:$wgSVGConverter variable.

Default value[edit]

$wgSVGConverters = array(
	'ImageMagick' => '$path/convert -background white -thumbnail $widthx$height\! $input PNG:$output',
	'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output',
	'inkscape' => '$path/inkscape -z -w $width -f $input -e $output',
	'batik' => 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d '
		. '$output $input',
	'rsvg' => '$path/rsvg -w $width -h $height $input $output',
	'imgserv' => '$path/imgserv-wrapper -i svg -o png -w$width $input $output',
	'ImagickExt' => array( 'SvgHandler::rasterizeImagickExt' ),
);

Usage[edit]

The following variables can be specified in the command line:

  • $path - the value of $wgSVGConverterPathManual:$wgSVGConverterPath, if set; otherwise $path/ (note the slash) will be stripped
  • $input - the path to the input SVG file
  • $output - the path where MediaWiki will look for the output PNG file
  • $width - the desired width
  • $height - the desired height

Note Note: The exclamation mark (!)' is a meta-character in Unix shells and must be escaped with a backslash. In the code sample above, this can be seen in the command for ImageMagick. On Windows-family operating systems, the exclamation mark (!) is not a meta-character in the shell and does not need to be escaped.

Example[edit]

A fictitious example, which assumes that an executable named mysvg2png is on the system path:

$wgSVGConverters = array(
	'mysvg2png' => '$path/mysvg2png -input $input -toFormat PNG -w $width -h $height -output $output'
);
$wgSVGConverter = 'mysvg2png';

Platform-specific notes[edit]

Windows[edit]

On Windows, where the executable path may contain spaces, you may need to quote the executable name. For example:

$wgSVGConverters = array(
    'inkscape' => '"$path/Inkscape/inkscape" -z -w $width -f $input -e $output',
);

On Windows-family operating systems, the exclamation mark (!) is not a meta-character in the shell and does not need to be escaped.


Inkscape.exe does not accept command line arguments in the default release. You will need to download inkscapec.exe. Then set the $wgSVGConverters to the following.

$wgSVGConverters = array(
    'inkscape' => 'inkscapec.exe --file=$input --export-png=$output --export-width=$width --without-gui',
);

The inkscapec.exe handles both long and short versions of the commandline.

On Windows-family operating systems, the exclamation mark (!) is not a meta-character in the shell and does not need to be escaped.

Linux[edit]

On some Linux installations (e.g. OpenSuSE 10.3, Debian, Ubuntu) rsvg is renamed:

$wgSVGConverters = array( 'rsvg' => '/usr/bin/rsvg-convert -w $width -h $height -o $output $input');
$wgSVGConverter = 'rsvg' ;

If the Java executable is not in the path, it must be specified to use batik, or a "Thumbnail creation failed:" message will be displayed. For example:

$wgSVGConverters['batik'] = '/usr/local/bin/java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input';

Note Note: Exclamation mark (!)' is a meta character in Unix shells and must be escaped with a backslash.

Debian Squeeze[edit]

If ImageMagick is used, then the following will be needed for SVG viewing:

apt-get install imagemagick libmagickcore3-extra php5-imagick

OpenBSD[edit]

On OpenBSD installations rsvg was renamed to rsvg-convert:

$wgSVGConverterPath = "/usr/local/bin";
$wgSVGConverters = array( 'rsvg' => '$path/rsvg-convert -w $width -h $height -o $output $input' );
$wgSVGConverter = 'rsvg' ;

See also[edit]