SVG/ Einführung/ Vorwort

Aus Wikibooks

Vorwort   Kurze Einführung in XML   Vektorgraphik   Programme rund um SVG  


Dieses Kapitel soll kurz die Motivation des Buches erläutern und helfen, sich im Buch zurechtzufinden.


Die Frage nach dem Warum[Bearbeiten]

Warum eigentlich Vektorgraphiken?[Bearbeiten]

Vektorgraphiken lassen sich ohne Qualitätsverlust beliebig skalieren.

„Normale“ Rastergraphiken wie zum Beispiel JPEG/JFIF, PNG oder GIF speichern das Bild als reine Farbinformation, also jedes einzelne Pixel im Falle von GIF und PNG oder aufgrund geschickter Transformationen eher als Farbverteilungen bei JPEG/JFIF. Vektorgraphiken speichern hingegen, aus welchen Elementen ein Bild besteht, also was die darstellenden Programme tun müssen, um das Bild zu präsentieren. Mit Vektorgraphiken ist im Dokument notierbar, was eine inhaltlich wichtige Struktur ist, worauf es ankommt.

Wenn es darum geht, Photographien abzuspeichern, so bieten Rastergraphiken klare Vorteile, denn eine Kamera braucht bei einem Rohdatenformat einfach nur Pixel für Pixel abzuspeichern, was der oder die Bildsensoren wahrnehmen. Weil viele Digitalkameras eine Bayer-Matrix im Sensor haben, interpolieren diese sogar die meisten Pixel nur und führen zumeist auch eine etwas aufwendigere Kompressionstransformation durch, um das Bild (auch) als JPEG/JFIF abspeichern zu können. Bei JPEG/JFIF ist allerdings wiederum die Farbtiefe begrenzt. So kommt es also zu Verlusten, bereits bedingt durch die Aufnahmetechnik oder das Format, mit welchem die Aufnahme abgespeichert wird.

Die Digitalkamera braucht indes nicht zu verstehen, was das Motiv ist, wenngleich dies bei besseren Modellen oftmals der Fall ist, um die automatische Fokussierung und Belichtung zu optimieren. Für die Aufnahme selbst braucht die Digitalkamera allerdings nicht zu wissen, welche Elemente auf dem gewählten Bildausschnitt dargestellt und wichtig sind, auch sind die auf Photographien dargestellten Geometrien und Farbverläufe oftmals derart komplex, dass eine vektorielle Beschreibung ein Vielfaches der Speichergröße benötigen würde.

Vektorformate bieten sich jedoch dort an, wo Graphiken digital gezeichnet und verändert werden und einfach veränderbar bleiben sollen. Dies ist zum Beispiel der Fall bei Konstruktionszeichnungen, Symbolen, Logos, technischen oder wissenschaftlichen Daten und deren Visualisierung. Auch können vorhandene Rastergraphiken um solche Elemente ergänzt werden, etwa durch einen Text, der lesbar bleiben soll, oder durch eine Markierung, die gegebenenfalls wieder entfernbar sein soll.

Vektorgraphiken bieten viele Vorteile:

  • Sie lassen sich vergrößern, ohne dass es zu „Treppenbildung“ kommt (siehe Beispielbild)
  • Sie lassen sich leicht bearbeiten (wenn man z.B. einen Text etwas höher platzieren möchte, muss man nur die Koordinaten des Textelements anpassen, bei Rastergraphiken müsste man die Stelle, an der sich der Text vorher befand, aufwendig nachbearbeiten)
  • Eventuell vorhandener Text lässt sich maschinell durchsuchen
  • Die Dateigröße ist unabhängig von der Auflösung. Sie hängt nur von der Anzahl der dargestellten Elemente ab und ist deshalb bei den angesprochenen Anwendungen oft geringer als die Speicherung als Rastergrafik.

Auch Animationen oder Interaktionen des Nutzers lassen sich bei Vektorformaten leichter berücksichtigen. Bei Animationen muss nicht wie bei Videos die Bewegung bildweise gespeichert werden. Vielmehr ist es möglich, nur einzelne Eigenschaften einzelner Objekte unabhängig von anderen Bildinhalten zu ändern und dies auch nicht bildweise, sondern durch eine Angabe der Interpolationsmethode zwischen wenigen Stützstellen.

Diese Vorteile beruhen vor allem darauf, dass bei der Speicherung als Rastergraphik ein Informationsverlust stattfinden kann, denn ein Pixel in einer Rastergraphik ist einfach nur ein Pixel mit einer bestimmten Farbe, nicht mehr und nicht weniger, das eigentliche Bild war jedoch aus verschiedenen Elementen (zum Beispiel einem Kreis) aufgebaut, die als Rastergraphik nichts anderes als eine Ansammlung aus Pixeln sind, ihre eigentliche Bedeutung geht verloren. Anders bei der Speicherung als Vektorgraphik, die Elemente behalten hier weiterhin ihre Bedeutung und der Informationsverlust (zum Beispiel die letzten Bearbeitungsschritte) wird minimiert.

Mehr dazu im Abschnitt Vektorgraphik.

Warum SVG?[Bearbeiten]

Der SVG-Standard wurde vom W3C (World Wide Web Consortium) ins Leben gerufen, demselben Gremium, das sich auch um die (X)HTML-Spezifikationen und viele andere Standards für das Internet kümmert. SVG ist also ein herstellerunabhängiger Standard auf dem sonst sehr zersplitterten Markt der Vektorformate. Bei dem Entwurf von SVG wurde darauf geachtet, dass es sich möglichst gut in andere Spezifikationen einfügt, so wurde nicht versucht, ein allmächtiges Format zu schaffen, sondern ein Format, das in dem Bereich, für den es konstruiert wurde, sehr mächtig ist (im Falle von SVG Graphikanwendungen), aber nicht versucht, Funktionalität zu beinhalten, die eher in den Aufgabenbereich eines anderen Standards fällt. Um dies zu ermöglichen, wurde SVG auf Basis von XML spezifiziert, was es erlaubt, SVG mit allen anderen XML-basierten Auszeichungssprachen zu kombinieren (vorausgesetzt das Anzeigeprogramm versteht diese) und die etablierten Werkzeuge zum Bearbeiten von XML zu benutzen. Davon wird auch oft Gebrauch gemacht: Metadaten (zum Beispiel Autor und Lizenz, Titel und Beschreibung) werden mittels RDF gespeichert (RDF - englisch: Resource Description Framework), Verweise und Referenzen mittels XLink realisiert, SVG-Dokumente können in andere XML-Dateien (zum Beispiel XHTML oder DocBook) integriert werden, sie können mittels ecmascript dynamisch verändert und mit CSS den aktuellen Bedürfnissen gemäß dekoriert werden (ohne die Graphik selbst zu ändern).

Ein wichtiger Bestandteil von SVG ist auch, dass dieses Format Strukturen beinhaltet, welche die eigentliche Information und Struktur des Bildes zugänglich machen kann. Es gibt ausgereifte Möglichkeiten, im Bild selbst Alternativtexte für alle relevanten Strukturen zu notieren, so dass ein Verständnis der Information des Bildes auch mit einer alternativen Textrepräsentation möglich wird, wenn keine visuelle Präsentation möglich ist – warum auch immer.

Die Verwendung von XML hat den angenehmen Nebeneffekt, dass die Dateien mit einem einfachen Texteditor relativ komfortabel manuell bearbeitet werden können, es werden also keine besonderen Programme benötigt, um Dokumente in diesem Format zu erstellen.

Wie man dieses Buch liest[Bearbeiten]

Nun, grundsätzlich ist das natürlich jedem selber überlassen und hängt ganz von den persönlichen Vorlieben und Lernverhalten ab. Wer etwas Bestimmtes sucht, sollte sich am besten in der Referenz oder im Inhaltsverzeichnis die entsprechenden Stellen heraussuchen. Möchte man eher einen Überblick über das Thema erhalten, so kann man Kapitel anlesen und sich einen Überblick verschaffen, gegebenenfalls zum nächsten Kapitel übergehen. Das Durchlesen des gesamten Buches bietet sich für diejenigen an, die sich ausführlich mit dem Thema beschäftigen wollen.

Konventionen[Bearbeiten]

Elemente, Eigenschaften und Attribute[Bearbeiten]

Attribut-, Eigenschafts- und Elementnamen werden immer mit der gleichen Dekoration versehen, um sie vom übrigen Text abzuheben: Ein Attribut oder eine Eigenschaft und ein Element.

Beispiele[Bearbeiten]

Zu jedem Element oder Attribut sollte mindestens ein Beispiel vorhanden sein, welches in nichtproportionaler Schrift mit Syntaxhervorhebung, bei längeren Beispielen auch mit Zeilennumerierung dargestellt wird. Dabei handelt es sich oft nur um kurze Fragmente einer SVG-Datei, nicht unbedingt um komplette Dokumente:

<element attribut="wert">
    <text>Ich bin ein Quelltext</text>
</element>

Alternativ kann das Beispiel natürlich auch direkt als ansehbares, komplettes Dokument vorliegen, dazu folgt man entweder dem entsprechenden Verweis oder navigiert über ein Vorschaubild weiter zum SVG-Beispiel, welches leider nicht direkt in das Buch integrierbar ist. Insbesondere bei umfangreicheren Beispielen wird eher direkt auf die SVG-Datei verwiesen, wo dann sowohl das graphische Ergebnis im Darstellungsprogramm betrachtet werden kann als auch der Quelltext der SVG-Datei, die wiederum selbst oft eine entsprechende Beschreibung enthält. So oder so empfiehlt es sich für eine intensivere Beschäftigung, diese oder eigene Beispiele auf dem eigenen Rechner zu kopieren und dann mit den im Buch diskutierten Merkmalen herumzuexperimentieren, um sich vertrauter damit zu machen, welche Merkmale welche Auswirkungen haben.

Interpretation von Merkmalen durch Darstellungsprogramme[Bearbeiten]

Zu jeder Eigenschaft, zu jedem Attribut oder Element wird angegeben, seit welcher Version des SVG-Standards es vorhanden ist und in welchen Programmen es (korrekt) interpretiert wird. Die Liste der Programme ist nicht vollständig und meist liegt ein kompletter Test einer Eigenschaft oder eines Attributes oder gar eines Elementes gar nicht vor, daher kann dies nur als Anhaltspunkt gesehen werden, der eine kritische Prüfung im Einzelfall leider nicht erspart. Fehlt ein Eintrag zu einem Merkmal für ein bestimmtes Programm, welches dem Leser verfügbar ist, kann dieser gerne nach einem ausführlichen Test ein Ergebnis ergänzen. Dabei hilft sowohl ein Hinweis auf fehlerhaftes wie richtiges Verhalten und auch ein Hinweis auf eine Implementierungslücke.

Beispiel: Ein Element, das seit der Version 1.1 zum SVG-Standard gehört, von Firefox und Safari mindestens seit der Version 4, bei Opera 9, teilweise auch schon in Version 8 und von Konqueror gar nicht interpretiert wird, bei batik/Squiggle gar falsch implementiert wurde und für welches für librsvg etc. kein Testergebnis vorliegt, erhält dann folgende Kennzeichnung:

element

SVG Squiggle (Batik) Opera (Presto) Firefox (Gecko; auch SeaMonkey, Iceape, Iceweasel etc) Konqueror (KSVG) Safari (Webkit) Chrome (Webkit) Microsoft Internet Explorer (Trident) librsvg
1.1 1.7 (falsch) 9 (8 teilweise) 4 4 ? ? ?

Hier folgt die Beschreibung des Elements…

Text
Text
Text

Die Versionsangaben bedeuten dabei nicht, dass das Merkmal erst seit der angegebenen Version interpretiert wird, sondern dass die Interpretation mit dieser Version (erfolgreich?) getestet wurde, also das Merkmal mindestens seit der angegebenen Version interpretiert wird. Ein Fragezeichen deutet darauf hin, dass die Interpretation mit dem angegebenen Programm noch nicht getestet wurde und ein Strich, dass bis jetzt kein Test erfolgreich war.

Weitere Informationen zu Programmen rund um SVG, was zu tun ist, wenn die bevorzugten Programme nicht in der Liste auftauchen, und vieles mehr ist im Kapitel Programme rund um SVG und auf der Dokumentationsseite der verwendeten Vorlage zu erfahren.

So können Sie mithelfen[Bearbeiten]

Sie haben einen Fehler gefunden, oder wollen die Versionsangabe aktualisieren? Oder Sie haben ein kompaktes Anwendungsbeispiel, welches im Buch nicht fehlen sollte? Gut! Da sich dieses Buch auf einem Wiki befindet, müssen Sie den Autoren keine email schreiben und darauf hoffen/warten, ob das Buch entsprechend angepasst wird, sondern Sie können die Änderungen selbst durchführen. Wenn Sie also einen Fehler (sei es in der Rechtschreibung oder im Inhalt) finden, klicken Sie einfach auf „Bearbeiten“ und beheben Sie ihn – nur Mut, Sie können nicht viel falsch- oder gar kaputtmachen. Sollten Sie sich nicht sicher sein, ob überhaupt ein Fehler vorliegt, zwar wissen, dass ein Fehler vorliegt, aber keine Korrektur dafür parat haben, oder einfach nur eine Frage haben, so sind Sie auf der Diskussionsseite zu dem entsprechenden Kapitel genau richtig, zu der Sie gelangen, wenn Sie oben auf „Diskussion“ klicken.

Hinweise dazu, wie Sie die Versionsangaben aktualisieren, finden Sie im Kapitel Programme rund um SVG und auf der Dokumentationsseite der verwendeten Vorlage.


Nun wünschen wir Ihnen noch viel Spaß beim Lesen dieses Buches und hoffen, dass es Ihnen gefällt.


Vorwort   Kurze Einführung in XML   Vektorgraphik   Programme rund um SVG