SVG Dateien erstellen

  • VB.NET
  • .NET 4.5

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    SVG Dateien erstellen

    Bis auf einen unbefriedigenden Beitrag aus 2015 habe ich hier im Forum leider nichts dazu gefunden.

    Gibt es eine Möglichkeit oder ein Plugin oder eine externe (gerne auch kostenpflichtige) Libray, welche es ermöglicht aus einer Picturebox eine SVG-Datei zu speichern.

    Speziell geht es mir um folgende Funktionen für meine Anwendung:

    * Der User soll beliebige Dateien (JPG, BMP, PNG) per Drag & Drop in die Anwendung ziehen können.
    * Die Grafik wird dann als PNG und als SVG Datei gespeichert und per FTP auf ein Device geladen

    Drag & Drop und PNG sind nicht das Problem, aber wie erstelle ich mit VB.NET am einfachsten eine SVG Datei ?

    Nachtrag 1:
    Ich habe mir einmal den SVG-Code einer von meinem Device erstellen SVG-Datei angesehen (habe den png;base64 Teil gekürzt):

    XML-Quellcode

    1. <svg width="1404" height="1872" viewBox="0 0 1404 1872" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny"><title>Vorlage_BONit_Brand</title>
    2. <image x="0" y="0" width="1404" height="1872" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABXwAAAdQCAIAAADg4hRoAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOydbWgc57n3/32YwrWwhXtAgV3QAc2DA17jgFfEEInkgzeoEJk8EAkXIpMDqexAozRwIsXQWM2HVM4BR2qhx0ohtlpokAoxUuAEKxDj9YcUqeCya4jRGhw8hghmwYIZ8MJckAE9H+7Z2dlXybZky/H1Q3F2Z+Z+3ZG913+ul59tbm5CEARBEARBEARBEARhp/oW5RbdunvT72/6vQ2/t+n3N23asinYGfzTP/3TaDRq3yKxsivsebZvabf3atnLxpumClqxl5b+Zuk3U7+pzOqnz/7U/Q/cqZlU8kJy6X8u9f5J718c/wu1/KB9S/vS0tJivlgle+Wv/6frmzZvsjqn8D8Lhf9RePr/ftpaVHXrv9wy1hmBHYHGrywrrmpLH5ZVpmk6WgAAAAAA4BEoLBYGjwx2P9dtHZooS+Je4w7sDDR4NCPw0LGnAwAAAAB8H2jN2sjHI+EXw2ohQ6FQOPD6gVwuF94b/qarhr+92NMBAAAAAL4nRk6NdD/X3draquu62o2y/+3+4O6HueUHcE9YXgEAAAAA3x+FQiFxPpG5kWlqbgpsDzzcgyqBe0XQAQAAAAAAOII9HQAAAAAAgCMIOgAAAAAAAEcQdAAAAAAAAI4g6AAAAAAAABxB0AEAAAAAADiCoAMAAAAAAHAEQQcAAAAAAOAIgg4AAAAAAMARBB0AAAAAAIAjCDoAAAAAAABHEHQAAAAAAACOIOgAAAAAAAAcQdABAAAAAAA4gqADAAAAAABwBEEHAAAAAADgCIIOAAAAAADAEQQdAAAAAACAI/43xCogSLeyo4QAAAAASUVORK5CYII="/>
    3. </svg>



    So wie das für mich aussieht, wurde einfach das PNG-Bild in die SVG-Datei eingebettet. Das würde mir schon reichen.
    Aus der Picturebox kann ich ja generell ein PNG abspeichern. Die XML-Beschreibung rundherum bekomme ich hin.
    Wie bekomme ich von der Picturebox oder von der PNG-Datei die Daten nach "href="data:image/png;base64" ?

    Nachtrag 2:
    Ja, das funktioniert so mit dem PNG/base64 ins SVG einbetten. Ist dann zwar kein Vektorformat mehr, aber für mein Device (reMarkable 2) passt es für Custom Templates hervorragend.
    Liebe Grüße
    Roland Berghöfer

    Bei der Entwicklung meiner Anwendung(en) steht nicht "Code nach .NET Lehrbuch" im Vordergrund, sondern eine stabile und brauchbare Anwendung die der Anwender ordentlich verwenden kann. Usability für den Kunden und Supportbarkeit beim Kunden stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider. Bitte verzeiht, dass meine VB.NET Quellcodes etwas VB6-lastig sind aber das ist für das funktionierende Endergebnis nicht wirklich relevant.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „dive26“ ()

    Nur zum Beseitigung von Klarheiten: Willst Du aus ner PNG-Pixelgrafikdatei ne Vektorgrafikdatei machen oder die PNG einbetten. Bei ersterem: Das wird knifflig, bei Zweiterem ein ungeprüfter Schnellschuss: ggf. stackoverflow über Bildeinbettung in SVG. Den SVG-Dateiinhalt kann man ja quasi automatisiert selber schreiben. Ist ja Klartext.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @VaporiZed

    Problem schon gelöst.
    Ja, Deine Einwände sind grundsätzlich vollkommen richtig.

    Nach der Einbettung eines PNG/base64 ins SVG ist es dann zwar kein Vektorformat mehr, aber für mein Device (reMarkable 2) passt es für Custom Templates hervorragend. Denn auch der Export vom Device macht nichts anderes. Also für meine Anwendung genau das was ich brauche.

    Ich weiß nicht ob Du das reMarkable paper tablet kennst. Aber da kann man custom templates erstellen. Die werden als PNG Datei gespeichert und damit diese auch vom Device per Email als Hintergrund verschickt werden, muss auch ein SVG File vorhanden sein. Ich schreibe ein kleines Programm, welches die Templates verwaltet und mit dem man die Templates mit einem Klick per Drag & Drop hochladen kann.
    Liebe Grüße
    Roland Berghöfer

    Bei der Entwicklung meiner Anwendung(en) steht nicht "Code nach .NET Lehrbuch" im Vordergrund, sondern eine stabile und brauchbare Anwendung die der Anwender ordentlich verwenden kann. Usability für den Kunden und Supportbarkeit beim Kunden stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider. Bitte verzeiht, dass meine VB.NET Quellcodes etwas VB6-lastig sind aber das ist für das funktionierende Endergebnis nicht wirklich relevant.