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

Applicazione a riga di comando per convertire SVG in PNG su Mac OS X

Ci sono programmi a riga di comando che possono convertire un SVG in PNG, che funzionano su Mac OS X?

Edit: Dylan B ha avuto una buona risposta con ImageMagick. Per riferimento, per installare ImageMagick con supporto SVG su Mac OS X usando MacPorts, fare

port install imagemagick +rsvg

Risposte (6)

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

Oppure senza installare nulla:

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

Produrrà picture.svg.png che è largo 1000 pixel.

L'ho provato solo su OS X 10.6.3.

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

ImageMagick è un editor di immagini a riga di comando estremamente versatile, che probabilmente rivaleggerebbe con Photoshop se avesse, sai, un'interfaccia grafica. Ma chi ne ha bisogno comunque :P

Qualcosa come il seguente convertirebbe un .svg in .png, dopo l'installazione:

$ convert picture.svg picture.png

L'originale .svg non viene cancellato.

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

Ho fatto svgexport usando node/npm per questo, è multipiattaforma e può essere semplice come:

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

Ancora un altro metodo senza installare nulla. Non in linea di comando però.

  1. Aprire il file .svg in Safari.
  2. Premi alt-command-i per aprire l'ispettore.
  3. Clicca con il tasto destro sul tag <svg>, seleziona “Capture Screenshot”. (Nota che non devi zoomare l'immagine.)

P.S. Per ingrandire l'immagine .svg se è troppo piccola, prova ad aprire il file .svg in un editor di testo e aggiungi 0 ad ogni numero tranne che nel meta-attributo. Questo può essere fatto con una sostituzione regex globale da (\d+) a $10, dove $1 è il segnaposto per il riferimento posteriore, per esempio.

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

Il comando di conversione di ImageMagick, utilizzando alcuni altri parametri, è ciò che ha fatto per me. Ecco la mia soluzione di script Bash batch che divide il compito su più processi per fare uso di tutti i core! Modificare come necessario.

batchConvertToSVG.sh (prende il numero di processi come argomento):

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

È possibile eseguire una conversione batch su un'intera cartella di file SVG in PNG. Ho usato l'interfaccia della linea di comando di Inkscape per produrre file png con una larghezza di 80px.

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

png sarà salvato con il nome originale *.png