2010-04-26 01:53:51 +0000 2010-04-26 01:53:51 +0000
179
179

Aplicación de línea de comandos para convertir SVG a PNG en Mac OS X

¿Existe algún programa de línea de comandos que pueda convertir un SVG a PNG, que funcione en Mac OS X?

Edit: Dylan B tuvo una buena respuesta con ImageMagick. Como referencia, para instalar ImageMagick con soporte para SVG en Mac OS X usando MacPorts, haz

port install imagemagick +rsvg

Respuestas (6)

251
251
251
2010-05-17 13:32:33 +0000

O sin instalar nada:

qlmanage -t -s 1000 -o . picture.svg

Producirá picture.svg.png que tiene 1000 pixeles de ancho.

Lo he probado sólo en OS X 10.6.3.

45
45
45
2010-04-26 02:00:10 +0000

ImageMagick ](http://www.imagemagick.org/script/binary-releases.php#macosx) es un editor de imágenes de línea de comandos extremadamente versátil, que probablemente rivalizaría con Photoshop si tuviera, ya sabes, una GUI. Pero quién necesita eso de todos modos. :P

Algo como lo siguiente convertiría un .svg a .png, después de la instalación:

$ convert picture.svg picture.png

El .svg original no se borra.

4
4
4
2014-09-27 08:47:51 +0000

He hecho svgexport usando node/npm para esto, es multiplataforma y puede ser tan simple como:

svgexport input.svg output.png
2
2
2
2019-05-11 18:49:15 +0000

Otro método sin instalar nada. Aunque no en línea de comandos.

  1. Abre el archivo .svg en Safari.
  2. Pulsar alt-command-i para abrir el inspector.
  3. Haz clic con el botón derecho en la etiqueta <svg> y selecciona “Capturar pantalla”. (Tenga en cuenta que no debe hacer zoom en la imagen).

P.D. Para ampliar la imagen .svg si es demasiado pequeña, intente abrir el archivo .svg en un editor de texto y añada 0 a cada número excepto en el meta-atributo. Esto puede hacerse mediante una sustitución global regex de (\d+) a $10, donde $1 es el marcador de posición para la referencia posterior, por ejemplo.

1
1
1
2015-06-26 02:48:16 +0000

El comando de conversión de ImageMagick, utilizando algunos otros parámetros, es lo que hizo por mí. Aquí está mi solución de script Bash por lotes que divide la tarea entre múltiples procesos para hacer uso de todos sus núcleos. Modifica lo que necesites.

batchConvertToSVG.sh (toma el número de procesos como argumento):

end=$(( $1 - 1 ))
for i in `seq 0 $end`;
        do
            echo Spawning helper $i of $end
                ./convertToSvgHelper.sh $i $1 &
        done

convertToSvgHelper.sh:

n=$1
for file in ./*.svg; do
   filename=${file%.svg}
   echo converting file named $filename
   test $n -eq 0 && convert -format png -resize 74 -background transparent -density 600 $file $filename.png
   n=$((n+1))
   n=$((n%$2))
done
0
0
0
2014-05-02 18:25:58 +0000

Puede realizar una conversión por lotes de una carpeta entera de archivos SVG a PNG. He utilizado la interfaz de línea de comandos de Inkscape para producir archivos png con un ancho de 80px.

find ~/desktop/toconvert '*.svg' -exec /Applications/Inkscape.app/Contents/Resources/bin/inkscape -z -w 80 -e "{}".png "{}" \;

png se guardará con el nombre original *.png