Svico /ˈsvaɪkoʊ/ is an SVG to ICO converter optimized for the smallest lossless output.
It renders the SVG into PNG layers at each requested size, losslessly compresses them with Oxipng, and assembles them into a single .ico file.
cargo install svicoor download a prebuilt binary
Usage: svico <input.svg> [options]
Options:
-o, --output <path> Output .ico path or directory [<input>.ico]
-s, --sizes <sizes> Comma-separated icon sizes in 1..=256 [16,24,32,256]
-h, --help Print help
Examples:
svico icon.svg # -> icon.ico (16,24,32,256)
svico icon.svg -o app/favicon.ico # -> app/favicon.ico (16,24,32,256)
svico icon.svg -o icons/ -s 64,128,256 # -> icons/icon.ico (64,128,256)[dependencies]
svico = "0.4"fn main() -> anyhow::Result<()> {
svico::convert("icon.svg", "icon.ico", &[16, 24, 32, 256])?;
Ok(())
}