PIL und vektorbasierte Grafiken

9

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.

Ich habe beide Bilder hochgeladen: EPS und SVG .

    
floqqi 28.02.2013, 08:21
quelle

4 Antworten

2

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.)

    
jsbueno 15.03.2013 18:01
quelle
1

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.

    
Alberto Vassena 23.07.2017 07:25
quelle
1

PIL unterstützt svg nicht, aber Sie könnten svglib versuchen, was un scheint glücklicherweise nicht aktiv zu sein:

askewchan 15.03.2013 17:26
quelle
0

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

    
Guibod 25.04.2017 14:25
quelle