Ubuntu – How to reduce the size of a SVG using software on Ubuntu

optimizationsvg

I would like to optimize a SVG using software on Ubuntu (and by optimize I mean to reduce the file size without loosing any visible parts of the graphic) and I do mean software I know there are some websites that can do this but I don't trust my internet connection always being good enough for this to work for me. I would also like to keep the file format SVG, I know that SVGZ is usually substantially smaller than its uncompressed counterpart but I am uploading these SVGs to a local MediaWiki installation and it cannot thumbnail SVGZ files to my knowledge (if I'm wrong please do correct me).

Best Answer

I can't think of something better than inkscape.

Inkscape is an open-source vector graphics editor similar to Adobe Illustrator, Corel Draw, Freehand, or Xara X. What sets Inkscape apart is its use of Scalable Vector Graphics (SVG), an open XML-based W3C standard, as the native format.

You can install it usind command:

sudo apt-get install inkscape

Take a look for this link for tips to optimize SVG using inkscape.


for comamnd line I think you should take a look for scour

scour --help
scour 0.26
Copyright Jeff Schiller, Louis Simard, 2010
Usage: scour [-i input.svg] [-o output.svg] [OPTIONS]

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

Options:
  --version                   show program's version number and exit
  -h, --help                  show this help message and exit
  --disable-simplify-colors   won't convert all 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
  --enable-id-stripping       remove all un-referenced ID attributes
  --enable-comment-stripping  remove all <!-- --> comments
  --shorten-ids               shorten all ID attributes to the least number of
                              letters possible
  --disable-embed-rasters     won't embed rasters as base64-encoded data
  --keep-editor-data          won't remove Inkscape, Sodipodi or Adobe
                              Illustrator elements and attributes
  --remove-metadata           remove <metadata> elements (which may contain
                              license metadata etc.)
  --renderer-workaround       work around various renderer bugs (currently
                              only librsvg) (default)
  --no-renderer-workaround    do not work around various renderer bugs
                              (currently only librsvg)
  --strip-xml-prolog          won't output the <?xml ?> prolog
  --enable-viewboxing         changes document width/height to 100%/100% and
                              creates viewbox coordinates
  -p DIGITS, --set-precision=DIGITS
                              set number of significant digits (default: 5)
  -q, --quiet                 suppress non-error output
  --indent=INDENT_TYPE        indentation of the output: none, space, tab
                              (default: space)
  --protect-ids-noninkscape   Don't change IDs not ending with a digit
  --protect-ids-list=PROTECT_IDS_LIST
                              Don't change IDs given in a comma-separated list
  --protect-ids-prefix=PROTECT_IDS_PREFIX
                              Don't change IDs starting with the given prefix

Also take a look for this SE question , it may help.

Related Question