|
Tabelle 1: Wichtige |
|
|---|---|
|
Tag |
Bedeutung |
|
<svg> |
Umschließt ein SVG-Dokument |
|
<g> |
Gruppiert Elemente |
|
<a> |
Umschließt einen Link (ähnlich wie in HTML) |
|
<text> |
Definiert ein Textelement |
|
<line> |
Beschreibt eine Linie |
|
<rect> |
Beschreibt ein Rechteck |
|
<path> |
Erzeugt einen Pfad (sichtbar oder unsichtbar) |
|
<use> |
Benutzt ein schon definiertes Element nochmals |
Ein SVG-Dokument besteht aus mehreren Objekten, die jeweils durch zwei Tags eingeschlossen sind. Die Objekte repräsentieren sichtbare (»circle«) oder unsichtbare (»path«) Teile einer Grafik. Die Darstellung hängt von den Objektattributen ab: In Listing 1 besitzen zum Beispiel die Objekte »circle« (Kreis), »rect« (Rechteck) und »text« unterschiedliche Attribute, um Position (x, y), Größe, Farbe und Schriftart festzulegen. Eine Liste aller SVG-Objekte und ihrer Attribute findet sich unter[1].
Die meisten SVG-Primitive besitzen das Farbenattribut »color«, das auf vier verschiedene Arten belegt werden kann. Drei davon nutzen das RGB-Farbsystem (Rot, Grün, Blau), in dem je ein Wert für die Intensität einer Farbkomponente steht: von 0 bis 255, Prozentwerte oder Hexadezimalzahlen von 00 bis FF. Für einige vordefinierte Farben kann auch einfach nur deren (englischer) Name angegeben werden. So lässt sich zum Beispiel die rote Füllung des Kreises in Listing 1 auf unterschiedliche Arten beschreiben:
fill="rgb(255,0,0)" fill="rgb(100%,0%,0%)" fill="#FF0000" fill="red"
Ansichtssache
Bis vor kurzem unterstützte Linux SVG-Grafiken mehr schlecht als recht. Der SVG-Viewer von Adobe [2], der unter Windows das Standard-SVG-Plugin ist, existiert für Linux immer noch als Beta einer Uraltversion. Seit letztem Jahr gibt es aber reichlich Alternativen. Amaya ist W3Cs eigene Implementierung eines Browsers und Webeditors [3]. Er ist als Beispielanwendung für alle W3C-Standards gedacht. Mit Amaya lassen sich daher nicht nur HTML und SVG, sondern auch MathML, XHTML und andere Dokumenttypen darstellen und bearbeiten. Amaya ist zwar nicht sehr benutzerfreundlich, aber für viele Plattformen (natürlich auch Linux) verfügbar. In Abbildung 2 zeigt Amaya die SVG-Datei aus Listing 1.
Schon frühzeitig hat das Apache-Webserver-Projekt SVG ernst genommen. Deshalb startete es das Projekt Batik, das ein Java-Toolkit zur Bearbeitung von SVG-Dokumenten ist und eine der besten Implementierungen des Standards bietet. Auf der Webseite des Projekts[4] findet sich ein Zip-Archiv des Toolkits, das mindestens Java 1.3 erfordert.
Programme des Batik-Projekts sind in Jar-Dateien (Java-Archive) aufgeteilt. Unter anderem bringt es den SVG-Betrachter Squiggle mit, den man so startet (siehe Abbildung 3):
java -jar batik-squiggle.jar
Ein weiteres interessantes Programm ist der Rasterizer. Er wandelt SVG-Grafiken in Rasterformate wie Jpeg und PNG um. Dieser Aufruf erzeugt eine PNG-Datei namens »simple.png«:
java -jar batik-rasterizer.jar -m image/png simple.svg
Hinter dem Schalter »-m« folgt der Mime-Typ, der noch das Ausgabeformat festlegt.
Seit einiger Zeit arbeiten Mozilla-Entwickler an direkter SVG-Unterstützung, also ohne auf zusätzliche Plugins zurückzugreifen. Leider ist das Projekt noch in der Betaphase. Der Code ist zwar schon Teil des Mozilla-Projekts, aber noch nicht standardmäßig aktiviert. Auf der Webseite des Projekts[5] ist eine Version mit aktivierter SVG-Unterstützung zu finden.
SVG auf dem Desktop
Der wirkliche Durchbruch von SVG unter Linux kam erst mit KDE und Gnome. Seit Version 3.1 beherrscht KDE das SVG-Format, zunächst nur, um entsprechende Icons anzuzeigen. Seit Version 3.2 können Konqueror und andere KDE-Programmen SVG-Grafiken auch direkt darstellen. Möglich machte dies das KSVG-Projekt[6], das sich in KDE um das SVG-Rendering kümmert.







