Bild zu SVG

Hallo zusammen,

gibt es eine Möglichkeit, ein Canvas oder eine Picturebox als SVG zu exportieren? Gibt es da ein Plugin oder eine solide Lösung? Einlesen verstehe ich, aber ich würde gerne als SVG exportieren können.

Grüße so27

I made a custom solution for it with my App, which admittedly has a limited number of features compared to a full set of tools for the SVG format. What I did was to draw examples of the data types I needed in Affinity Designer (you can use any app supporting SVG export) and saved it as a text based SVG. It was then basically a question of copying the respective setup for each data type used and generating a Xojo equivalent. It took a while but works really well.

Ich habe mit meiner App eine benutzerdefinierte Lösung dafür erstellt, die im Vergleich zu einem vollständigen Satz von Tools für das SVG-Format zugegebenermaßen nur eine begrenzte Anzahl von Funktionen bietet. Ich habe Beispiele der benötigten Datentypen in Affinity Designer gezeichnet (Sie können jede App verwenden, die SVG-Export unterstützt) und sie als textbasiertes SVG gespeichert. Anschließend musste ich im Grunde das jeweilige Setup für jeden verwendeten Datentyp kopieren und ein Xojo-Äquivalent generieren. Das hat eine Weile gedauert, funktioniert aber wirklich gut.

Dann müssen wir zunächst klären, in wecher Form du den Inhalt des Pictures in SVG einbetten möchtest:

a) als Vektor. Dann muss das Bild zunächst vektorisiert (quasi mit Vektorobjekten “nachgemalt”) werden. Diese können dann in SVG direkt als Primitive (z.B. Kreis, Oval, Rechteck) oder Pfadobjekt eingebettet werden.

b) als Pixel. SVG enthält auch Befehle, Pixeldaten direkt einzubetten, ganz ähnlich wie man das auch in HTML mit Base64-codierten Daten machen kann:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <image
        width="100" height="100"
        xlink:href="data:image/png;base64,IMAGE_DATA"
        />
</svg>

An Stelle des Platzhalters “IMAGE_DATA” müssen dann die Daten eines PNG in Base64 stehen.

Fürs Vektorisieren habe ich vor langer Zeit mal ein Projekt gefunden, wo jemand den Potrace-Algorithmus in Xojo umgesetzt hatte. Ich habe damit experimentiert:

https://qualidat.com/material/potrace.zip

B wäre für mich passend. Ich werde das versuchen. Heißt also erst das Bild in Base64 codieren und dann dort einfügen. Das wäre großartig, wenn das so funktionieren würde.