Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert a SVG to a PNG with ImageMagick?

I have a SVG file that has a defined size of 16x16. When I use ImageMagick's convert program to convert it into a PNG, then I get a 16x16 pixel PNG which is way too small:

convert test.svg test.png 

I need to specify the pixel size of the output PNG. -size parameter seems to be ignored, -scale parameter scales the PNG after it has been converted to PNG. The best result up to now I got by using the -density parameter:

convert -density 1200 test.svg test.png 

But I'm not satisfied, because I want to specify the output size in pixels without doing math to calculate the density value. So I want to do something like this:

convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png 

So what is the magic parameter I have to use here?

like image 711
kayahr Avatar asked Mar 24 '12 16:03

kayahr


People also ask

Does ImageMagick support SVG?

This affects creating static content (like manuscripts).

How do I convert SVG to PNG on Mac?

Then, you can convert the SVG file to PNG. Open the File menu and select Export As. Then, choose Select File Type and choose PNG as the export format.


1 Answers

I haven't been able to get good results from ImageMagick in this instance, but Inkscape does a nice job of scaling an SVG on Linux and Windows:

# Inkscape v1.0+ inkscape -w 1024 -h 1024 input.svg -o output.png 
# Inkscape older than v1.0 inkscape -z -w 1024 -h 1024 input.svg -e output.png 

Note that you can omit one of the width/height parameters to have the other parameter scaled automatically based on the input image dimensions.

Here's the result of scaling a 16x16 SVG to a 200x200 PNG using this command:

enter image description here

enter image description here

like image 132
808sound Avatar answered Sep 28 '22 02:09

808sound