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

Aplicação de linha de comando para conversão de SVG para PNG no Mac OS X

Existe algum programa de linha de comando que possa converter um SVG para PNG, que corre no Mac OS X?

Editar: Dylan B teve uma boa resposta com ImageMagick. Para referência, para instalar ImageMagick com suporte SVG no Mac OS X utilizando MacPorts, faça

port install imagemagick +rsvg

Respostas (6)

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

Ou sem instalar nada:

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

Produzirá picture.svg.png que tem 1000 pixels de largura.

Testei-o apenas no 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) é um editor de imagem de extremamente versátil na linha de comando, que provavelmente rivalizaria com o Photoshop se tivesse, você sabe, uma GUI. Mas quem precisa deles de qualquer forma. :P

Algo como o seguinte converteria um .svg para .png, após a instalação:

$ convert picture.svg picture.png

O .svg original não é apagado.

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

Fiz svgexport usando nodo/npm para isso, é uma plataforma cruzada e pode ser tão simples como isso:

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

Mais um método sem instalar nada. Mas não na linha de comando.

  1. abrir o ficheiro .svg no Safari.
  2. Prima alt-command-i para abrir o inspector.
  3. Clicar com o botão direito do rato na etiqueta <svg>, seleccionar “Capture Screenshot”. (Note que não deve ampliar a imagem.)

P.S. Para ampliar a imagem .svg se for demasiado pequena, tente abrir o ficheiro .svg no editor de texto e anexar 0 a cada número, excepto no meta-atributo. Isto pode ser feito por uma substituição global regex de (\d+) a $10, em que $1 é o espaço reservado para referência posterior, por exemplo.

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

O comando de conversão do ImageMagick, usando alguns outros parâmetros, foi o que o fez por mim. Aqui está a minha solução de script Bash batch que divide a tarefa em múltiplos processos para fazer uso de todos os seus núcleos! Modifiquem conforme necessário.

batchConvertToSVG.sh (toma como argumento o número de processos):

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

Pode efectuar uma conversão em lote numa pasta inteira de ficheiros SVG para PNG. Utilizei a interface de linha de comando Inkscape para produzir ficheiros png com uma largura de 80px.

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

png serão guardados com o nome original *.png