Reference

scour(1)

Optimize and clean SVG files

NAME

scour - Optimize and clean SVG files

SYNOPSIS

scour [INPUT.SVG [OUTPUT.SVG]] [OPTIONS]

DESCRIPTION

Scour is an SVG optimizer/cleaner that reduces the size of scalable vector graphics by optimizing structure and removing unnecessary data.

The goal of Scour is to output a file that renderes identically at a fraction of the size by removing a lot of redundant information created by most SVG editors.

Optimization options are typically lossless but can be tweaked for more agressive cleaning.

If the input/output files are not specified, stdin/stdout are used. If the input/output files are specified with a svgz extension, then compressed SVG is assumed.

OPTIONS

--version

show program's version number and exit

-h, --help

show this help message and exit

-q, --quiet

suppress non-error output

-v, --verbose

verbose output (statistics, etc.)

-i INPUT.SVG

alternative way to specify input filename

-o OUTPUT.SVG

alternative way to specify output filename

Optimization:

--set-precision=NUM

set number of significant digits (default: 5)

--set-c-precision=NUM

set number of significant digits for control points (default: same as '--set-precision')

--disable-simplify-colors

won't convert colors to #RRGGBB format

--disable-style-to-xml

won't convert styles into XML attributes

--disable-group-collapsing

won't collapse <g> elements

--create-groups

create <g> elements for runs of elements with identical attributes

--keep-editor-data

won't remove Inkscape, Sodipodi, Adobe Illustrator or Sketch elements and attributes

--keep-unreferenced-defs

won't remove elements within the defs container that are unreferenced

--renderer-workaround

work around various renderer bugs (currently only librsvg) (default)

--no-renderer-workaround

do not work around various renderer bugs (currently only librsvg)

SVG document:

--strip-xml-prolog

won't output the XML prolog (<?xml ?>)

--remove-titles

remove <title> elements

--remove-descriptions

remove <desc> elements

--remove-metadata

remove <metadata> elements (which may contain license/author information etc.)

--remove-descriptive-elements

remove <title>, <desc> and <metadata> elements

--enable-comment-stripping

remove all comments (<!-- -->)

--disable-embed-rasters

won't embed rasters as base64-encoded data

--enable-viewboxing

changes document width/height to 100%/100% and creates viewbox coordinates

Output formatting:

--indent=TYPE

indentation of the output: none, space, tab (default: space)

--nindent=NUM

depth of the indentation, i.e. number of spaces/tabs: (default: 1)

--no-line-breaks

do not create line breaks in output(also disables indentation; might be overridden by xml:space="preserve")

--strip-xml-space

strip the xml:space="preserve" attribute from the root SVG element

ID attributes:

--enable-id-stripping

remove all unreferenced IDs

--shorten-ids

shorten all IDs to the least number of letters possible

--shorten-ids-prefix=PREFIX

add custom prefix to shortened IDs

--protect-ids-noninkscape

don't remove IDs not ending with a digit

--protect-ids-list=LIST

don't remove IDs given in this commaseparated list

--protect-ids-prefix=PREFIX

don't remove IDs starting with the given prefix

SVG compatibility checks:

--error-on-flowtext

exit with error if the input SVG uses nonstandard flowing text (only warn by default)

EXAMPLES

Standard:

scour -i input.svg -o output.svg

For better compatibility with web browsers:

scour -i input.svg -o output.svg --enable-viewboxing

Maximum scrubbing:

scour -i input.svg -o output.svg --enable-viewboxing --enable-id-stripping \
--enable-comment-stripping --shorten-ids --indent=none

Maximum scrubbing and a compressed SVGZ file:

scour -i input.svg -o output.svgz --enable-viewboxing --enable-id-stripping \
--enable-comment-stripping --shorten-ids --indent=none

COPYRIGHT

Jeff Schiller, Louis Simard, 2010

MAN PAGE

Enkelena Haxhija (EnkelenaH) has produced this man page from the upstream README and the --help output for Debian with the help of pandoc(1) and help2man(1). The latter is executed at build time so --help output and this man page should stay consistent.