Converting SVG to PNG online and in your terminal
This post was published in 2013 and is kept here for reference. It may contain information that's outdated or inaccurate. All external links and references have been updated to point to archived versions on archive.org where possible.
This post is mostly for my own benefit on the rare occasion that I have to convert SVG files to PNG.
I always spend a large amount of time looking for an online SVG to PNG converter or a terminal one-liner to do this.

SVG icon resources:
- The Noun Project - http://thenounproject.com/
- Iconmonstr (PNG available too!) - http://iconmonstr.com/
- Game icons - http://game-icons.net/
Online services to convert SVG to PNG that aren’t totally rubbish:
- Surprisingly not another Windows shareware site - http://image.online-convert.com/convert-to-png
- Very simple, lets you specify output dimensions - http://www.fileformat.info/convert/image/svg2raster.htm
Convert SVG to PNG using your terminal (Mac, Linux):
- Using librsvg (and rsvg-convert tool) - http://webadventures.at/2012/04/29/convert-svg-png/
First install librsvg using brew:
$ brew update && brew upgrade
$ brew install librsvg
$ ln -s /usr/local/bin/rsvg-convert /usr/local/bin/rsvg
Then, you can either using rsvg directly, or make a function like the following:
# svg2png [file] [width] [height]
function svg2png {
file=$1
file_name="${file%.*}"
file_ext="${file##*.}"
shift
width=${1:-"128"}
height=${2:-"128"}
if [ "${file_ext}" != "svg" ]; then
printf "\n${file} is not an svg!\n"
else
rsvg -w $width -h $height "${file}" -o "${file_name}.png"
fi
}
- Using CairoSVG and Python - http://cairosvg.org/
- Using svg2png and PhantomJS/Node.js - https://npmjs.org/package/svg2png
If you found this useful let me know, I for one am glad that I’ve got this information in one place now.
This post is also available in plain text
GitHub API rate limit exceeded. Comments available again at