2017-01-09 1 views
0

Ich habe eine Python-Anwendung, die irgendwann ein natives SVG-Bild erzeugt. Dieser svg wird dann sofort über einen Webserver gesendet (und wird in einem xlink: href-Attribut abgefangen).Wie exportiert man eine Svg in eine Datei?

Ich möchte eine Kopie davon machen und in der Lage sein, es zu sehen, nachdem der Server geschlossen worden ist. Da es nur zum Testen ist, ist mir das Format, in dem das Bild gespeichert wird, egal, ich möchte nur, dass es "menschlich visualisierbar" ist. Wie kann ich das machen?

Ich arbeite auf einem Ubuntu OS, verwenden Python 3, und das Bild wird von Datashader generiert (es ist relevant). Wenn


das war nicht klar: Ich will nicht das SVG erzeugt. Mein Svg ist bereits generiert und ich möchte es nur in einer Datei speichern.

+1

Eine '.svg' Datei ist perfekt menschlich visualisierbar, einfach in jedem Browser öffnen. Meinst du vielleicht ein SVG-Vektorbild, das auf ein PNG-Rasterbild gerendert wird? –

+0

ist mir egal. Ich kann es nicht einfach öffnen, während es nur ein Python-Objekt ist, also selbst wenn es Svg, Png oder was auch immer ist, solange es gespeichert wird, werde ich glücklich sein. –

+1

Also ... 'öffnen ('out.svg', 'w'). Schreiben (svg_string)'? SVG ist nur XML. Ich bin ein wenig verwirrt, dass Sie die SVG-Inhalte an einen Webserver senden, aber Schwierigkeiten haben, sie auf die Festplatte zu schreiben. Fehle ich etwas? –

Antwort

1

Ich bin nicht sicher, welche OS Sie verwenden, etc., aber dies kann ein Anfang in die richtige Richtung:

Sie bereits eine bestimmte Datei zugeordnet haben Angenommen, da sie erstellt und gesendet wurde durch Server (wie Sie angegeben), dann könnte man nur so etwas wie verwenden:

import pysvg.structures 
import pysvg.builders 
import pysvg.text 
import subprocess 

mySvg = pysvg.strcture.svg() 
savePathAndFile = "/myPath/testSvg.svg" 
mySvg.save(savePathAndFile) 

subprocess.call(['/myPath/toSVG/viewingApp', savePathAndFile]) 

wo/myPath/toSVG/viewingApp für den Betrieb einer svg Verarbeitungsanwendung, wie inkscape ein Terminal-Befehl ist.

+0

<< AttributeError: 'Image' Objekt hat kein Attribut 'save' >> (Ich nahm an mein Svg Image Python Objekt ist äquivalent zu Ihnen mySvg aber vielleicht ist das nicht der Fall) –

+0

In meinem Beispiel ist das Objekt eine Pysvg-Struktur, im Gegensatz zu einem nativen "Bild". Da es in der Frage keinen Code gab, bin ich mir nicht sicher, wie genau Ihr Framework aussieht, aber dieses Beispiel ist eine grundlegende Implementierung zum Speichern einer .svg-Datei über Python-Pakete. Überprüfen Sie diesen kurzen Artikel für weitere Details ... http://florian-berger.de/de/articles/creating-simple-svg-from-python/ –

+0

Nun, meins ist ein natives Bild, und die speichern davon ist der ganze Punkt meiner Frage. Ihr Link ist, wie man eine Svg erstellt, in meinem Fall habe ich bereits eine SVG und ich möchte es nur speichern. –

Verwandte Themen