svgcleaner could help you to clean up your SVG files from the unnecessary data.
The main purpose of the svgcleaner is to losslessly reduce size of an SVG image, created in a vector editing application, before publishing.
Usually, more than half of an SVG image data is useless for rendering: - Temporary data used by the vector editing application. - Non-optimal SVG structure representation. - Unused and invisible graphical elements. - ...
There are only one real alternative to the svgcleaner - svgo.
Despite obvious advantages of the svgcleaner, like correctness, cleaning ratio and performance, which is shown below, there are some more nuances:
* You can get all of this features using GUI.
See 'Testing notes' for details.
All stats was collected using latest release version.
Less is better.
More is better.
svgo
breaks most of the files.Less is better.
| Collection | Size Before (MiB) | Size After (MiB) | Ratio (%) | |--------------------------|------------------:|-----------------:|----------:| | Breeze icons theme | 21.72 | 11.09 | 48.91 | | Ardis icons theme | 11.82 | 5.23 | 55.74 | | Humanity icons theme | 8.56 | 3.08 | 64.01 | | Open Icon Library | 207.45 |69.44 | 66.53 | | Elementary icons theme | 17.72 | 7.09 | 59.95 | | Adwaita icons theme | 2.21 | 0.37 | 83.08 | | Faience icon theme | 22.35 | 11.14 | 50.16 | | GCP Icons | 0.344 | 0.082 | 75.9 |
You can find more tests, with detailed explanations of errors, here.
svgcleaner shouldn't change your file unless you say it to, but there are still things that can't be preserved. So even if you disable all cleaning options there are still things that will be changed:
style
element will be extracted and processes. The style
element will be removed.style
attribute will be split into attributes.class
attribute will be processed and removed.currentColor
and inherit
attributes values will be resolved.defs
element.offset
attribute value of the stop
element represented as percent - it will be
converted into number.
svgcleaner in.svg out.svg
Use --help
for a list of the cleaning options and the doc for more details.
You can get a GUI here.
You can get prebuild packages here.
You need the latest stable Rust compiler.
bash
cargo build --release
If you're a Rust programmer, you can install svgcleaner using:
bash
cargo install svgcleaner
See CONTRIBUTING.md for details.
svgcleaner is licensed under the GPL-2.0.