Ich habe mehrere Probleme, wenn ich versuche, EPS- oder SVG-Bilder mit PIL zu öffnen.
EPS öffnen
%Vor%endet in:
%Vor% Auch das Öffnen von SVG endet in IOError: cannot identify image file
.
Das Problem ist, dass ich beide Formate in meiner Anwendung unterstützen muss. Das Konvertieren in andere Formate ist keine Alternative. Ich bin auf Windows 7, Python 2.7.2 und PIL 1.1.7.
Es gibt Alternativen zu PIL, aber Alternativen zu PIL sind nicht das, was Sie wollen - Es gibt keine Eine Bibliothek, die ich kenne, würde eine vektorbasierte Zeichnung transparent öffnen und sie wie jedes andere Bild behandeln, ohne einen Webbrowser zu öffnen und den Render zu erfassen.
Für den Umgang mit SVG gibt es ein Rezept mit Cairo - das auch viele andere Formate verarbeiten kann, wenn es etwas schwieriger zu handhaben ist als die PIL-API - ich denke, dass cario auch mit EPS umgehen kann - also wahrscheinlich entwickle deine App im schlimmsten Fall mit Pycairo- oder Pycairo + PIL.
Das Rezept für das Rendern von SVGs lautet in der Antwort: SVG konvertieren nach PNG in Python
(Beachten Sie, dass Sie die Datei nicht in PNG konvertieren müssen - der Recipe zeigt an, wie Sie auf eine Cairo-Oberfläche rendern, die angezeigt, in einer Datei gespeichert werden kann usw.)
Heute, im Juli 2017, können SVG-Dateien einfach gelesen und konvertiert werden, indem cairosvg importiert wird, das die Funktion svg2png bereitstellt.
Außerdem ist die svglib -Entwicklung wieder aktiv, und durch den Import von svglib und reportlab sollte die Konvertierung von svg in png ebenfalls einfach sein. eine Frage von 2 Anrufen.
Kissen unterstützt EMF, das ist immer noch Vektorgrafiken. Ich bin über diesen Thread gestolpert, als ich auf der Suche nach einem bequemen Mittel war, um SVG in EMF zu konvertieren. Am besten verwenden Sie Inkscape, um EMF aus SVG zu erstellen:
inkscape --file image.svg --export-emf image.emf
Tags und Links python svg python-imaging-library vector-graphics eps