std.svg
SVG-Bibliothek für Lyx: Vektorgrafiken programmatisch erzeugen, stilisieren und als .svg-Datei speichern. Die Bibliothek deckt den gesamten SVG 1.1-Standard ab — von einfachen Grundformen über Pfade, Texte und Farbverläufe bis hin zu SMIL-Animationen und Filtern. Optionaler Parser zum Einlesen und Traversieren vorhandener SVG-Dateien.
Architektur
┌──────────────────────────────────────────────────────────┐
│ std.svg (Public API) │
├────────────────────────┬─────────────────────────────────┤
│ Inhalt │ Infrastruktur │
│ elements · path │ builder · xml │
│ text · defs │ │
│ filter · image │ │
│ anim │ │
├────────────────────────┴─────────────────────────────────┤
│ Querschnitt: style │
├──────────────────────────────────────────────────────────┤
│ Lesen: parser │
└──────────────────────────────────────────────────────────┘
Minimales Beispiel
import std.svg;
// Dokument anlegen
var svg: Svg := SvgNew(800.0, 600.0);
// Kreis mit blauer Füllung
SvgCircle(svg, 400.0, 300.0, 100.0, "fill:blue;stroke:navy;stroke-width:2");
// Text
SvgTextAt(svg, 400.0, 300.0, "Hallo SVG", "font-size:24;text-anchor:middle;fill:white");
// Datei speichern
SvgSave(svg, "ausgabe.svg");
SvgFree(svg);
Units
| Unit | Beschreibung |
|---|---|
| std.svg.builder | Dokumentlebenszyklus: SvgNew, SvgSave, SvgFree, Viewport |
| std.svg.xml | XML-Schreiber: Puffer, Zahlenformatierung, Dokumentstruktur |
| std.svg.style | Fill, Stroke, Opacity, Transforms, Dash-Muster |
| std.svg.elements | Grundformen: rect, circle, ellipse, line, polyline, polygon |
| std.svg.path | Pfad-Builder: moveto, lineto, Bezier-Kurven, Bögen |
| std.svg.text | Text: SvgTextAt, tspan, Text auf Pfad, Font-Styling |
| std.svg.defs | Definitionen: Farbverläufe, Muster, Symbole, Marker, Clips |
| std.svg.filter | Filter: Unschärfe, Schatten, Graustufen, feComposite |
| std.svg.image | Bilder: JPEG/PNG einbetten, Base64, RGB→PNG |
| std.svg.anim | SMIL-Animation: animate, animateTransform, Keyframes |
| std.svg.parser | SVG-Reader: SvgOpen, DOM-Traversierung, Attribut-Zugriff |
Hauptfunktionen
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
SvgNew(width: f64, height: f64): Svg | pub | Erzeugt neues SVG-Dokument mit Viewport-Größe |
SvgNewViewBox(width: f64, height: f64, vbX: f64, vbY: f64, vbW: f64, vbH: f64): Svg | pub | Erzeugt SVG mit explizitem viewBox-Attribut |
SvgSave(svg: Svg, path: pchar): void | pub | Schreibt SVG als UTF-8-Datei |
SvgToString(svg: Svg): pchar | pub | Gibt SVG-Inhalt als String zurück |
SvgFree(svg: Svg): void | pub | Gibt Dokumentressourcen frei |
Letzte Aktualisierung: 2026-05-23
