Ich verwende das ImageMagick-Dienstprogramm convert
, um die SVG-Datei in ein PNG-Bild zu konvertieren. Zuerst habe ich eine Vanilla-Installation von IM auf OSX ( brew install imagemagick
) verwendet, um das SVG mit Hilfe von:
Dies funktionierte, außer dass einige der Bildobjekte in dieser Datei versetzt waren (tatsächliche Links zu Bildern). Ich habe dann eine ähnliche Frage gelesen , die ImageMagick empfohlen hat mit rsvg Unterstützung kompiliert werden (Homebrew macht es mit brew install imagemagick --use-rsvg
).
Wenn ich jetzt versuche, die Konvertierung durchzuführen, werden keine Bilder gerendert. Ich habe versucht, diese SVG-Datei zu verwenden, und das resultierende PNG war leer. Wenn jedoch Text auf dem SVG vorhanden ist, wird er am richtigen Ort gerendert. Irgendwelche Ideen, um fortzufahren? Danke.
Oh, ich habe mir jetzt die SVG-Datei angesehen, mit der Sie verlinkt sind.
Es enthält JavaScript. Ich denke nicht, dass die RSVGlib JavaScript in SVGs unterstützt. Ich weiß sicher, dass der interne SVG-Coder namens MSVG nicht.
Sie sollten diesen Befehl ausführen, um eine Liste aller 'Delegierten' zu sehen, die Ihr ImageMagick zu verwenden versucht:
%Vor%Um zu ermitteln, welcher Delegat-Befehl von ImageMagick für die SVG-Verarbeitung verwendet wird, führen Sie
aus %Vor% Sie sollten die binären + Befehlszeilenparameter sehen, die Ihr convert
zu verwenden versucht. In meinem Fall ist es /opt/local/bin/rsvg-convert
(aber ich benutze nicht Homebrew, ich benutze MacPorts).
Überprüfen Sie nun, ob die Binärdatei überhaupt auf Ihrem System vorhanden ist:
/opt/local/etc/ImageMagick/delegates.xml
- Ich weiß nicht, wo Homebrew es speichert. Da jedoch Ihre nicht geänderte Installation bereits funktionierte, musste bereits damals ein SVG-konsumierender Delegierter bei der Arbeit gewesen sein. Sonst hättest du überhaupt keine SVG-verarbeiteten erhalten .
Diese interne SVG-Rendermethode von ImageMagick heißt MSVG. Dies ist bei weitem kein Feature-Complete SVG Interpreter / Renderer.
Aktualisierung:
Um zu sehen, was ImageMagick für welches Format macht, führen Sie diesen Befehl aus:
%Vor%und für SVG run
%Vor%Ausgabe auf meinem System ist:
%Vor% Nachdem Sie rsvg
installiert haben, ist die interne Methode zum Rendern von SVGs nicht verschwunden. Sie können ImageMagick immer noch zwingen, den internen Renderer zu verwenden, indem Sie MSVG:
wie folgt zur Befehlszeile hinzufügen:
Nur der Vollständigkeit halber ...
Tags und Links svg png imagemagick rsvg