Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Multimedia

k23:k23.4:k23.4.1:start

23.4.1 Klasse SvgImage

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:

SVGImage

Abbildung 23.4.1.1: Anzeige der Datei red.svg

23.4.1.1 Eigenschaften

Die Klasse SvgImage verfügt nur über zwei Eigenschaften:

EigenschaftDatentypBeschreibung
HeightFloatLiefert oder setzt die Höhe des SVG-Dokuments in Punkten. Ein Synonym für die Eigenschaft Höhe ist H.
WidthFloatLiefert 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

23.4.1.2 Methoden

Die Klasse SvgImage stellt Ihnen die folgenden vier Methoden zur Verfügung:0

MethodeBeschreibung
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

  • Zuerst wird ein neues SVG-Image erzeugt (1),
  • dann wird der Inhalt aus einer SVG-Datei geladen und dem SVG-Bild zugewiesen (2) und
  • abschließend das SVG-Image in einer DrawingArea gezeichnet (3):

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.

  • Laden Sie zuerst das Gambas-Logo.
  • Fügen Sie danach einen schönen roten Ball hinzu.
  • Speichern Sie das geänderte Bild ab:
  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.

Download

Artikel

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k23/k23.4/k23.4.1/start.txt · Zuletzt geändert: 05.02.2021 (Externe Bearbeitung)

Seiten-Werkzeuge