SVG (was: [linux-l] Grammar Design)

Volker Grabsch vog at notjusthosting.com
Do Sep 22 11:41:03 CEST 2005


On Mon, Sep 19, 2005 at 09:51:39PM +0200, Oliver Bandel wrote:
> SVG?
> Sacht mir nix.
> Was'n das?

SVG steht für "Scalable Vector Graphics" und beschreibt einen Standard
für Vektorgrafiken. Vom Prinzip her ist es also mit PostScript (*.ps, *.eps)
und PDF vergleichbar. Sieh es am besten als "freies offenes WMF".
(*.wmf ist das unter Windows übliche Vektorgrafik-Format). Es ist
vorallem für Grafiken gedacht, nicht für mehrere Seiten oder so. Von
Einsatzgebiet her ist es mit *.wmf und *.eps am ähnlichsten.

Aber das Format ist XML-basiert, und von der gesamten Struktur her
einfacher. Auch wenn es dort Scripting-Elemente gibt, ist es in erster
Linie aber eine echte Beschreibungs-Sprache. Für PostScript etc. braucht
man ja erstmal nen Interpreter, um überhaupt zu verstehen, was darin vor
sicht geht. SVG kannst du direkt als XML parser, und ein SVG von Hand zu
ändern oder zu erzeugen ist ebenfalls sehr viel angenehmer.

Obwohl SVG vom Aufbau her einfacher ist, hat es dennoch mehr Features:
Animation, Interaktivität [ onclick(...) ], Transparenz, Alpha-Layer,
Bezier-Kurven, ...

In meinem Murpi-Projekt habe ich, genau wie du beim Laban-Scale-Generator,
mit meinem Programm PostScript erzeugt. Bezierkurven brauchte ich, und
hab sie selbst gerendert (durch eine hohe Anzahl an kleinen Strecken).
Sicher, der Lerneffekt war nett, aber würde ich es nochmal machen, würde
ich SVG stattdessen generieren.

SVG findet vorallem im Web seine Verbreitung. Vom Firefox wird es längst
unterstützt, und wenn du nach Creative-Commons-Werken suchst, wirst du
ebenfalls *.jpg, *.png oder eben *.svg finden. Es ist eine Schande, dass
sich Vektorgrafiken im Web so schlecht durchsetzen. Wie oft findet man
Seiten mit Grafiken, die z.B. irgendwelche Schemas oder physikalische
Vorlange beschreiben? Es sollten eigentlich Vektorgrafiken sein, und sie
sehen auch so aus, als hätte der Autor sie als Vektorgrafik erschaffen.
Aber keiner bietet sie als Vektorgrafik ein. Viele nehmen *.png oder
*.gif, was ja wenigstens noch Verlustfrei ist, aber trotzdem ärgerlich
ist, wenn man diese miserable Qualität beim Ausdrucken (z.B. für einen
Schülervortrag) hat. Einige nehmen sogar *.jpg, das würgt nochmal extra
rein. Auch in der Wikipedia sind zahlreiche Grafiken, die besser als SVG
geeignet wären. Und vorallem Routenplaner oder Stadtplan-Dienste: Wenn
die SVG ausspucken würden, könnte man (bis zu einem gewissen Grad) sehr
schön reinzoomen, nur durch den Browser, ohne dass irgendwas neu geladen
werden muss, oder die Grafik pixelig wird. Aber was soll man machen,
solange die Browser das noch nicht alle unterstützen?

Übrigens gibt es aber ein properitäres Vektorgrafik-Format, das weit
verbreitet ist: *.swf (Flash) ... wenn man den Aspekt der Animation
beiseite lässt, ist Flash ein Vektorgrafik-Programm.

Viel schlimmer sieht es auf der Seite der Grafik-Designer aus, die mit
dem Web aufgewachsen sind, und nur noch Rastergrafiken kennen. Sie
wissen gar nicht, dass man Grafiken nicht nur pixelweise definieren
kann, sondern objektweise, ohne an irgendeine Auflösung gebunden zu
sein. So viele junge Leute, die ich kenne, designen *Grafiken* mit
Photoshop, das muss man sich mal vorstellen! Abgesehen davon, dass
sie besser Gimp nehmen sollten ;-), werden dadurch z.B. Firmenlogos als
Rastergrafiken erstellt. Die Leute schwingen ihre Linien, Kurven und
Füllungen immer auf einem großen Pixelblatt, kriegen verdammte Probleme
wenn sie die größe eines Kreises im Nachhinein ändern wollen, und damit
die Qualität nicht zu schlecht wird, vielleicht noch in einer so großen
Auflösung, dass ihr Rechner das gerade so mitmacht.

Das kann nicht an Mangel von Software liegen. Corel Draw gibt es schon
lange, und OpenOffice (aber auch schon StarOffice5 und älter) können
Vektorgrafiken erstellen und Seiten entsprechend gestalten (*.sxd -
OpenOffice Draw). Nur MS Office hat das nicht, abgesehen von ein paar
sehr primitiven und ungeeigneten "Zeichen-Werzeugen" in Word.
Nein, es liegt einfach daran, dass die Leute mit Vektografiken nicht
mehr so bewusst in Berührung kommen, vorallem weil's im Web nichts
anderes gibt, und weil man sich heutzutage schon als Grafikdesigner
rühmen kann, wenn man bloß ordentlich mit Photoshop umgehen kann. Eine
Ironie in sich - statt Photoshop bzw. Gimp nur zum Nachbearbeiten der
Grafiken bzw. zum Nachbearbeiten von Fotos zu nutzen.

Ob SVG aus Flash, Corel Draw, etc. exportiert werden kann, weiß ich
nicht, aber alle neueren Vektorgrafik-Programme unterstützen SVG von
Hause aus, besonders nennenswert:

	* Inkscape  (Nachfolger von Sodipodi)
	* Sketch

Mit Inkscape arbeite ich recht viel. Da kannst du auch EPS-Dateien
importieren und als SVG speichern (und umgekehrt), und auch viele andere
Vektorgrafik-Formate (*.wmf, ...) können geladen werden. Und du bist nicht
an die GUI zu sehr gefesselt, denn du kannst jedes Element anklicken
und dir innerhalb von Inkscape den zugehörigen XML-Code (also SVG-Code)
ansehen und bearbeiten. Deine Änderungen werden sofort sichtbar, d.h.
du kannst damit auch schnell mal irgendwelche krassen SVG-Features nutzen,
die in Inkscape noch nicht in Formulare gegossen wurden.

Wenn zu SVG per Hand / Programm schreiben willst, ist das beste Tutorial
IMHO die W3C-Spezifikation:

	http://www.w3.org/TR/SVG/

Auch als ich mich mit XML beschäftigte, waren die w3c-Seiten IMHO die
besten: klar, auf den Punkt, vollständig, komplizierteres am Beispiel
erläutert, ... nur für blutige Einsteiger wohl nicht ganz geeigenet.
Dafür gibt's aber:

	http://svglbc.datenverdrahten.de/
	http://svg.tutorial.aptico.de/index.php

In Google einfach nur nach "SVG" suchen, bringt auch schon viele
hervorragende Ergebnisse.


Viele Grüße,

	Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l