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

Opdrachtregelprogramma voor het omzetten van SVG naar PNG op Mac OS X

Zijn er opdrachtregelprogramma’s die een SVG naar PNG kunnen converteren, die op Mac OS X draaien?

Edit: Dylan B had een goed antwoord met ImageMagick. Ter referentie, om ImageMagick met SVG ondersteuning op Mac OS X te installeren met MacPorts, doe je

port install imagemagick +rsvg

Antwoorden (6)

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

Of zonder iets te installeren:

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

Het zal picture.svg.png produceren dat 1000 pixels breed is.

Ik heb het alleen getest op 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) is een extreem veelzijdige command-line beeldbewerker, die waarschijnlijk zou wedijveren met Photoshop als het, je weet wel, een GUI had. Maar wie heeft die nodig?

Iets als het volgende zou een .svg omzetten in .png, na installatie:

$ convert picture.svg picture.png

De originele .svg wordt niet verwijderd.

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

Ik heb svgexport gemaakt met behulp van node/npm hiervoor, het is cross-platform en kan zo simpel zijn als:

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

Nog een methode zonder iets te installeren. Maar niet in opdrachtregel.

  1. Open het .svg bestand in Safari.
  2. Druk op alt-command-i om de inspector te openen.
  3. Klik met de rechtermuisknop op de <svg> tag, selecteer “Capture Screenshot”. (Merk op dat je niet moet inzoomen op het beeld.)

P.S. Om het .svg beeld te vergroten als het te klein is, probeer het .svg bestand te openen in een tekst editor en voeg 0 toe aan elk nummer behalve in de meta-attribuut. Dit kan gedaan worden door een globale regex substitutie van (\d+) naar $10, waar $1 de placeholder is voor terugverwijzing, bijvoorbeeld.

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

ImageMagick’s convert commando, met gebruik van enkele andere parameters, is wat het voor mij deed. Hier is mijn batch Bash script oplossing die de taak verdeelt over meerdere processen om gebruik te maken van al je cores! Aanpassen indien nodig.

batchConvertToSVG.sh (neemt aantal processen als argument):

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

Je kan een batch conversie uitvoeren op een hele map van SVG bestanden naar PNG. Ik gebruikte de Inkscape opdrachtregel interface om png bestanden te maken met een breedte van 80px.

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

png zal opgeslagen worden met de originele naam *.png