it-swarm.com.de

Befehlszeilenanwendung zum Konvertieren von SVG in PNG unter Mac OS X

Gibt es Befehlszeilenprogramme, die eine SVG in PNG konvertieren können und unter Mac OS X ausgeführt werden?

Bearbeiten : Dylan B hatte eine gute Antwort mit ImageMagick. Um ImageMagick mit SVG-Unterstützung unter Mac OS X mit MacPorts zu installieren, gehen Sie wie folgt vor

port install imagemagick +rsvg
151
Lorin Hochstein

Oder ohne etwas zu installieren:

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

Es wird picture.svg.png mit einer Breite von 1000 Pixeln erzeugt.

Ich habe es nur unter OS X 10.6.3 getestet.

219
tst

Ich fand, dass für mich das beste Werkzeug für den Job rsvg-convert ist.

Es kann in brew mit brew install librsvg gefunden werden und wird wie folgt verwendet:

rsvg-convert -h 32 icon.svg > icon-32.png

(In diesem Beispiel wird eine 32px hohe PNG erstellt. Die Breite wird automatisch ermittelt.

98
Ahti

ImageMagick ist ein extrem vielseitiger Befehlszeilen-Bildeditor, der wahrscheinlich mit Photoshop konkurrieren würde, wenn er eine grafische Benutzeroberfläche hätte. Aber wer braucht das schon. : P

So etwas wie das Folgende würde nach der Installation eine .svg-Datei in eine .png-Datei konvertieren:

$ convert picture.svg picture.png

Die ursprüngliche .svg wird nicht gelöscht.

40
Jessie

Inkscape mit seiner Commandline-Schnittstelle liefert die besten Ergebnisse für mich:

/Applications/Inkscape.app/Contents/Resources/bin/inkscape --export-png output.png -w 1024 -h 768 input.svg

Gut ist, dass Sie die genaue Pixelgröße des resultierenden Bildes festlegen können, ohne sich mit der Dichte herumschlagen zu müssen.

28
seb

OK, ich habe eine einfache Möglichkeit gefunden, dies auf dem Mac zu tun, wenn Sie Google Chrome haben.

In einem Satz wird das svg-Bild auf einer Webseite angezeigt (muss sich in einer html-Datei befinden). Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie "Bild kopieren" und fügen Sie es in die Vorschau-App ein.

Schritte:

  1. Laden Sie die Datei svg herunter oder speichern Sie sie auf Ihrer Festplatte, z. B. somefile.svg.
  2. Erstellen Sie jetzt im selben Ordner eine HTML-Datei tmp.html, die die folgende Zeile enthält: <img src="somefile.svg">
  3. Öffnen Sie nun diese HTML-Datei in Google Chrome
  4. Sie sollten das Bild sehen. Klicken Sie jetzt mit der rechten Maustaste auf das Bild und wählen Sie "Bild kopieren"
  5. Gehen Sie zu Macs Preview App und wählen Sie "File -> New from Clipboard"
  6. Jetzt File -> Save die Datei und Sie haben die Datei png. (oder andere Dateitypen).

Dies wurde auf dem aktuellen Chrome (Version 48.0) unter Mac OS X El Capitan getestet.

pdate: Ich bin nicht sicher, ob es an einer von Google Chrome auferlegten Einschränkung liegt. Ich probiere einfach eine SVG-Datei mit Chrome 58.0 aus und erhalte ein winziges Bild von der obigen Methode. Wenn Sie diesen Fall auch sehen, können Sie auch verwenden

<img src="somefile.svg" style="height: 82vh; margin-top: 9vh; margin-left: 9vh">

und du wirst ein Bild auf dem Bildschirm haben, das gut genug ist, um einen Screenshot zu machen - mit CmdShift4 oder CmdShift3 auf dem Mac zum Beispiel. Stellen Sie sicher, dass Sie die Größe Ihres Chrome-Fensters auf das auf dem Bildschirm maximal zulässige Maß einstellen.

15

Wenn Sie viele auf einmal erledigen möchten, können Sie:

mogrify -format png *.svg

Es gibt auch Optionen zum Ändern der Größe usw. im laufenden Betrieb.

5

Versuchen Sie Apache Batik .

Java -jar batik-rasterizer.jar FILES

Es unterstützt auch die Stapelkonvertierung und hat viele andere nützliche Optionen.

4
Behrang

Ich habe svgexport mit node/npm gemacht, es ist plattformübergreifend und kann so einfach sein wie:

svgexport input.svg output.png
4
Ali Shakiba

Sie können auch phantomjs verwenden, um das SVG zu rendern. Der Vorteil ist, dass es wie ein Browser gerendert wird, da es sich im Grunde um ein kopfloses WebKit handelt.

Sobald Sie es heruntergeladen haben, benötigen Sie phantomjs (binär) und die Datei rasterizer.js aus dem Beispielordner.

phantomjs examples/rasterize.js Tiger.svg out.png
3
Stofke

Der Konvertierungsbefehl von ImageMagick, der einige andere Parameter verwendet, hat mir geholfen. Hier ist meine Batch-Bash-Skriptlösung, die die Aufgabe auf mehrere Prozesse verteilt, um alle Ihre Kerne zu nutzen! Ändern Sie nach Bedarf.

batchConvertToSVG.sh (nimmt die Anzahl der Prozesse 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
1
sudo

Ich benutze diesen Befehl auf meinem Linux. Es sollte auch für Sie funktionieren.

mogrify +antialias -density 2000 -verbose -format png *.svg

Ich habe gelernt, dass ohne das Argument "-density" die Bitmap sehr pixelig wäre. Ändern Sie den Dichtewert entsprechend Ihren Anforderungen.

1

Wie bereits erwähnt, macht ImageMagick den Trick. Ich wollte nur einen Punkt für GraphicsMagick hinzufügen, eine alte Abzweigung von ImageMagick, die einige Verbesserungen aufweist (und viel weniger Abhängigkeit aufbläht, wenn sie über Fink installiert wird).

0
user31752

Das habe ich benutzt:

brew install imagemagick --with-librsvg

Führen Sie dann die folgenden Befehle aus:

find . -type f -name "*.svg" -exec bash -c 'convert $0 $0.png' {} \; rename 's/svg\.png/png/' *

Ich hoffe es hilft.

0
Alan Dong

Sie können eine Stapelkonvertierung für einen gesamten Ordner mit SVG-Dateien in PNG durchführen. Ich habe die Inkscape-Befehlszeilenschnittstelle verwendet, um PNG-Dateien mit einer Breite von 80 Pixel zu erstellen.

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

png wird unter dem ursprünglichen Namen * .png gespeichert