¿Cómo convertir un SVG en un PNG con ImageMagick?

Tengo un archivo SVG que tiene un tamaño definido de 16x16. Cuando uso el programa de conversión de ImageMagick's para convertirlo en un PNG, entonces obtengo un PNG de 16x16 píxeles que es demasiado pequeño:

convert test.svg test.png

Necesito especificar el tamaño en píxeles del PNG de salida. El parámetro -size parece ser ignorado, el parámetro -scale escala el PNG después de haberlo convertido a PNG. El mejor resultado hasta ahora lo obtuve usando el parámetro -density:

convert -density 1200 test.svg test.png

Pero no estoy satisfecho, porque quiero especificar el tamaño de salida en píxeles sin hacer matemáticas para calcular el valor de la densidad. Así que quiero hacer algo como esto:

convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png

Entonces, ¿cuál es el parámetro mágico que tengo que usar aquí?

Solución

No he podido obtener buenos resultados con ImageMagick en este caso, pero Inkscape hace un buen trabajo en Linux y Windows:

inkscape -z -e test.png -w 1024 -h 1024 test.svg

Aquí'es el resultado de escalar un SVG de 16x16 a un PNG de 200x200 usando este comando:

Sólo como referencia, mi versión de Inkscape (en Ubuntu 12.04) es:

Inkscape 0.48.3.1 r9886 (Mar 29 2012)

y en Windows 7, es:

Inkscape 0.48.4 r9939 (Dec 17 2012)
Comentarios (23)

No es perfecto, pero cumple su función.

convert -density 1200 -resize 200x200 source.svg target.png

Básicamente, aumenta el DPI lo suficientemente alto (sólo utilizar una conjetura educada / seguro) que el cambio de tamaño se realiza con una calidad adecuada. Yo estaba tratando de encontrar una solución adecuada a esto, pero después de un tiempo decidió que esto era lo suficientemente bueno para mi necesidad actual.

Nota: ¡Usa 200x200! para forzar la resolución dada

Comentarios (7)

por qué no pruebas la línea de comandos de inkscape, este es mi archivo bat para convertir todos los svg de este directorio en png:

FOR %%x IN (*.svg) DO C:\k\App\Inkscape\inkscape.exe %%x -z --export-dpi=500 --export-area-drawing --export-png="%%~nx.png"

Comentarios (0)