Gibt es Befehlszeilenprogramme, die eine SVG in PNG konvertieren können und unter Mac OS X ausgeführt werden?
Edit : 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
macos
command-line
png
svg
Lorin Hochstein
quelle
quelle
pip3 install cairosvg
Antworten:
Oder ohne etwas zu installieren:
Es wird picture.svg.png mit einer Breite von 1000 Pixeln erzeugt.
Ich habe es nur unter OS X 10.6.3 getestet.
quelle
qlmanage -t
gibt die von Quick Look (im Finder usw.) verwendete Miniatur an. Clevere Idee. Leider können diese Thumbnails fehlerhaft sein, insbesondere wenn es sich um Text handelt.rsvg-convert
in @ ahtis Antwort hat schon früher für mich funktioniert.-s
Option hat bei mir nicht funktioniert. Beschneidet es immer noch auf ein Quadrat. Sehr frustrierend!Ich fand, dass für mich das beste Werkzeug für den Job ist
rsvg-convert
.Es kann im Gebräu gefunden werden
brew install librsvg
und wird wie folgt verwendet:(In diesem Beispiel wird ein 32px hoher PNG erstellt. Die Breite wird automatisch bestimmt.
quelle
convert
Fehler ausgegeben und eine komplexe SVGqlmanage
Antwort hat für alle geklappt, aber einen weißen Hintergrund eingefügt, den ich nicht will.rsvg-convert
hatte die resultierende .png-Datei die richtigen Abmessungen, aber das Bild wurde schwarz anstatt der ursprünglichen Farben. Mitqlmanage
dem Bild wird auf ein Quadrat beschnitten. Immer noch auf der Suche nach einer Lösung :-(ImageMagick ist ein äußerst vielseitiger Befehlszeilen-Bildeditor, der es wahrscheinlich mit Photoshop aufnehmen 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:
Die ursprüngliche .svg wird nicht gelöscht.
quelle
display
.Inkscape mit seiner Commandline-Oberfläche liefert für mich die besten Ergebnisse:
Gut ist, dass Sie die genaue Pixelgröße des resultierenden Bildes festlegen können, ohne sich mit der Dichte herumschlagen zu müssen.
quelle
inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png
OK, ich habe eine einfache Möglichkeit gefunden, dies auf dem Mac zu tun, wenn Sie über Google Chrome verfügen.
In einem Satz wird das
svg
Bild auf einer Webseite angezeigt (muss in einerhtml
Datei enthalten sein). 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:
svg
Datei herunter oder speichern Sie sie auf Ihrer Festplatte.somefile.svg
tmp.html
, die diese Zeile enthält:<img src="somefile.svg">
"File -> New from Clipboard"
File -> Save
die Datei und Sie haben diepng
Datei. (oder andere Dateitypen).Dies wird auf dem aktuellen Chrome (Version 48.0) unter Mac OS X El Capitan getestet.
Update : Ich bin nicht sicher, ob es an einer von Google Chrome auferlegten Einschränkung liegt. Ich versuche gerade eine SVG-Datei mit Chrome 58.0 und erhalte ein winziges Bild von der obigen Methode. Wenn Sie diesen Fall auch sehen, können Sie auch verwenden
und Sie haben ein Bild auf dem Bildschirm, das ausreicht, um einen Screenshot zu erstellen - zum Beispiel mit CmdShift4oder CmdShift3auf dem Mac. Stellen Sie sicher, dass Sie die Größe Ihres Chrome-Fensters auf die auf dem Bildschirm maximal zulässige Größe einstellen.
quelle
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.
quelle
mogrify
ist auch Teil von ImageMagick.Versuchen Sie Apache Batik .
Es unterstützt auch die Stapelkonvertierung und hat viele andere nützliche Optionen.
quelle
Ich habe svgexport mit node / npm dafür gemacht, es ist plattformübergreifend und kann so einfach sein wie:
quelle
Sie können auch Phantombilder 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 herunterladen müssen Sie PhantomJS (binär) und die rasterizer.js Datei aus dem Ordner Beispiele.
quelle
brew cask install phantomjs
. In meiner Installation befand sich der Beispielordner im Pfad/usr/local/Caskroom/phantomjs/2.1.1/phantomjs-2.1.1-macosx/examples/
.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.
quelle
Ich benutze diesen Befehl auf meinem Linux. Es sollte auch für Sie funktionieren.
Ich habe gelernt, dass ohne das Argument "-density" die Bitmap sehr pixelig wäre. Ändern Sie den Dichtewert entsprechend Ihren Anforderungen.
quelle
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):
convertToSvgHelper.sh:
quelle
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 bei der Installation über Fink die Abhängigkeit deutlich verringert).
quelle
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.
png wird unter dem ursprünglichen Namen * .png gespeichert
quelle
Noch eine andere Methode, ohne etwas zu installieren. Nicht in der Kommandozeile.
<svg>
Tag und wählen Sie "Screenshot erfassen". (Beachten Sie, dass Sie das Bild nicht vergrößern dürfen.)PS Um das .svg-Bild zu vergrößern, wenn es zu klein ist, öffnen Sie die .svg-Datei im Texteditor und hängen Sie sie
0
an jede Zahl mit Ausnahme des Metaattributs an . Dies kann durch eine globale Regex-Ersetzung von(\d+)
bis erfolgen$10
, wobei$1
der Platzhalter beispielsweise als Rückverweis dient.quelle
wkhtmltoimage (aus dem Projekt wkhtmltopdf) hat dies gut umgesetzt:
ImageMagick
rendert CJK-Zeichen auf meinem Mac als leer.quelle