Die Klasse SvgImage repräsentiert eine SVG-Grafik, die aus einer Datei in den Speicher geladen wird. Diese Klasse können Sie erzeugen und erhalten ein neues SVG-Dokument:
Dim hSvgImage As SvgImage hSvgImage = New SvgImage ( [ Width As Float, Height As Float ] )
Width und Height sind die Abmessungen des SVG-Dokuments in Punkten. Wenn sie nicht angegeben sind, müssen sie später angegeben werden, bevor darauf gemalt werden kann. Die tatsächliche Abmessung des SVG-Dokuments wird berechnet, indem eine Auflösung von 72 DPI angenommen wird.
Der kostenlose Open-Source-Editor Inkscape hat die beste Unterstützung für SVG. Unter https://inkscape.org/de/entwickeln/das-svg-format/ finden Sie neben einer einfachen Beschreibung für das SVG-Format:
SVG (Abkürzung für „Scalable Vector Graphics“) ist ein freies, quelloffenes, standardisiertes Dateiformat für Vektorgrafiken. Es wird vom W3C (World Wide Web Consortium), der wichtigsten internationalen Standardisierungsinstanz für das Internet, entwickelt und gepflegt. Es basiert auf XML (Extensible Markup Language), ebenfalls ein W3C-Standardformat, das eine generische Auszeichnungssprache darstellt, die entwickelt wurde, um beliebige Daten in einem menschen- und maschinenlesbaren Format darzustellen.
Wenn Sie den folgenden (XML-)Text
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="200"> <rect x="50" y="50" width="200" height="100" style="fill:red"/> </svg>
mit einem Text-Editor in die leere Datei red.svg einfügen, dann sehen Sie in der Anzeige – zum Beispiel mit dem Bildbetrachter XViewer – die folgende Darstellung:
Abbildung 23.4.1.1: Anzeige der Datei red.svg
Die Klasse SvgImage verfügt nur über zwei Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Height | Float | Liefert oder setzt die Höhe des SVG-Dokuments in Punkten. Ein Synonym für die Eigenschaft Höhe ist H. |
Width | Float | Liefert oder setzt die Breite des SVG-Dokuments in Punkten. Ein Synonym für die Eigenschaft Breite ist W. |
Tabelle 23.4.1.1.1 : Eigenschaften der Klasse SvgImage
Die Klasse SvgImage stellt Ihnen die folgenden vier Methoden zur Verfügung:0
Methode | Beschreibung |
---|---|
Clear() | Löscht das SVG-Image (im Speicher). |
Paint ( [ X As Float, Y As Float, Width As Float, Height As Float ] ) | Zeichnet das SVG-Image auf die aktuelle Zeichenfläche (Device). |
Resize ( Width As Float, Height As Float ) | Ändert die Größe des SVG-Images. Width ist seine neue Breite in Punkten. Height ist seine neue Höhe in Punkten. |
Save ( Path As String ) | Speichert das SVG-Image im angegebenen Datei-Pfad als SVG-Datei. |
Tabelle 23.4.1.2.1 : Methoden der Klasse SvgImage
Die folgende statische Methode lädt ein SVG-Dokument aus der Datei mit dem angegebenen Datei-Pfad und gibt es als neues SVGImage zurück:
Static Function Load ( Path As String ) As SvgImage
Beispiel 1
Public Sub DrawingArea1_Draw()
'-- Paint the Gambas logo Dim hSvgImage As SvgImage ' (1) hSvgImage = SvgImage.Load("gambas.svg") ' (2) hSvgImage.Paint() ' (3) End
Beispiel 2 – Auf einem SVG-Image wird gezeichnet und das geänderte Bild abgespeichert.
Dim hSvgImage As SvgImage hSvgImage = SvgImage.Load("~/gambas.svg") Paint.Begin(hSvgImage) Paint.Brush = Paint.RadialGradient(200, 140, 40, 215, 115, [Color.RGB(255, 0, 0, 64), Color.White], [1.0, 0.1]) Paint.Arc(200, 140, 40) Paint.Fill() Paint.End() hSvgImage.Save("~/gambas_with_red_ball.svg")
Achtung! Die SVG-Unterstützung von Qt hat seit Jahren einige Fehler. Es ist nicht bekannt, ob es mit Qt5 besser sein wird.
Artikel