04.02.2013 Aufrufe

Webdesign - Netzmafia

Webdesign - Netzmafia

Webdesign - Netzmafia

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Webdesign</strong>


<strong>Webdesign</strong><br />

Table of Contents<br />

<strong>Webdesign</strong>...................................................................................................................................1<br />

<strong>Webdesign</strong>...............................................................................................................................................1<br />

Inhalt............................................................................................................................................1<br />

Einführung............................................................................................................................1<br />

Grundlagen Bildverarbeitung................................................................................................1<br />

Bildbearbeitung.....................................................................................................................1<br />

Video und VRML.................................................................................................................1<br />

WWW-Dokumente gestalten................................................................................................2<br />

Interaktion, Sucherheit, Design-Regeln................................................................................2<br />

Skript-Sprachen.....................................................................................................................2<br />

Anhang..................................................................................................................................2<br />

<strong>Webdesign</strong>.............................................................................................................................3<br />

Einführung..............................................................................................................................................3<br />

Hypertext und Hypermedia.........................................................................................................3<br />

Das World Wide Web?................................................................................................................4<br />

Inhaltliche Aspekte......................................................................................................................4<br />

Textgestaltung (Schreiben)...................................................................................................4<br />

Grafikgestaltung (Illustrieren)..............................................................................................4<br />

Animationen..........................................................................................................................5<br />

Akustische Informationen.....................................................................................................5<br />

Interaktion.............................................................................................................................6<br />

Software für Multimedia-Designer.......................................................................................6<br />

Zielgruppe definieren............................................................................................................7<br />

Web 2.0.................................................................................................................................9<br />

<strong>Webdesign</strong>...........................................................................................................................10<br />

Grundlagen Bildverarbeitung.............................................................................................................10<br />

Bilddaten....................................................................................................................................10<br />

Grundlegendes....................................................................................................................13<br />

Farbdarstellung..........................................................................................................................13<br />

Farbensehen beim Menschen..............................................................................................15<br />

Farb-Kontraste....................................................................................................................15<br />

Farb-Perspektive.................................................................................................................16<br />

Farb-Wirkung......................................................................................................................17<br />

Farbmodelle........................................................................................................................21<br />

Gradation.............................................................................................................................22<br />

Gamma-Korrektur...............................................................................................................23<br />

Dithering.............................................................................................................................24<br />

Betrachten wir nun einige Dithermöglichkeiten:................................................................26<br />

Bildkompressionsverfahren.......................................................................................................26<br />

Verlustfreie Kompression...................................................................................................29<br />

Verlustbehaftete Kompression............................................................................................36<br />

Grafikformate............................................................................................................................36<br />

BMP....................................................................................................................................37<br />

GIF......................................................................................................................................39<br />

JPG......................................................................................................................................39<br />

PCX.....................................................................................................................................41<br />

TIFF....................................................................................................................................42<br />

<strong>Webdesign</strong>...........................................................................................................................43<br />

i


<strong>Webdesign</strong><br />

Table of Contents<br />

Bildbearbeitung....................................................................................................................................43<br />

Erste Schritte.............................................................................................................................43<br />

Wo bekommt man Bilder her?............................................................................................46<br />

Bildbearbeitung...................................................................................................................48<br />

Weitere Funktionen von Paint-Programmen......................................................................50<br />

Weitere Effekte..........................................................................................................................50<br />

Farbe und Spezialeffekte.....................................................................................................52<br />

Progressive und transparente Bilder..........................................................................................52<br />

Progressive, transparente und animierte GIFs....................................................................54<br />

Bildbearbeitung für Webseiten..................................................................................................54<br />

Die wichtigsten Bedienungselemente von Paintshop.........................................................54<br />

Die Werkzeugleiste von Paintshop.....................................................................................55<br />

Die Werkzeugpalette von Paintshop...................................................................................56<br />

Die Farbpalette von Paintshop............................................................................................57<br />

Grafiken selbst erstellen............................................................................................................58<br />

Zuschneiden der Grafik.......................................................................................................58<br />

Grafiken nachbearbeiten mit Paintshop..............................................................................62<br />

Wie man einen Button macht..............................................................................................63<br />

Gedückt oder nicht?............................................................................................................63<br />

Wie man eine Schrift mit Schatten macht...........................................................................64<br />

Wie man ein Photo "ins Bild" setzt.....................................................................................66<br />

Farbverläufe........................................................................................................................68<br />

Sitemap-Grafiken................................................................................................................69<br />

Tips für Bilder auf Webseiten.............................................................................................69<br />

<strong>Webdesign</strong>...........................................................................................................................70<br />

Video und VRML.................................................................................................................................70<br />

Videodaten.................................................................................................................................70<br />

AVI-Format von Microsoft.................................................................................................72<br />

MPEG.................................................................................................................................79<br />

Virtual Reality: VRML..............................................................................................................80<br />

Beispiel...............................................................................................................................80<br />

<strong>Webdesign</strong>...........................................................................................................................81<br />

WWW-Dokumente gestalten...............................................................................................................81<br />

Aufbau von HTML-Dokumenten..............................................................................................82<br />

Der Dokumententyp............................................................................................................83<br />

Was ist ein URL?................................................................................................................84<br />

Browser...............................................................................................................................85<br />

Verschiedene Strukturelemente.................................................................................................85<br />

Überschriften.......................................................................................................................85<br />

Kommentare........................................................................................................................85<br />

Zeilenumbruch....................................................................................................................85<br />

Absatz.................................................................................................................................85<br />

Waagrechte Trennlinie........................................................................................................87<br />

Überschrift Ebene 1..............................................................................................................................87<br />

Überschrift Ebene 2, align=right...............................................................................................87<br />

Überschrift Ebene 3, align=left...........................................................................................87<br />

Vorformatierter Text...........................................................................................................87<br />

Einrückungen, längere Zitate..............................................................................................87<br />

Verschiedene Schriftarten...................................................................................................88<br />

ii


<strong>Webdesign</strong><br />

Table of Contents<br />

Überschrift Ebene 1<br />

Listen...................................................................................................................................89<br />

Links zu anderen Dokumenten...........................................................................................91<br />

Sonderzeichen............................................................................................................................91<br />

Sounds und anderes...................................................................................................................92<br />

Farbe..........................................................................................................................................94<br />

Font-Spielereien..................................................................................................................95<br />

Tabellen.....................................................................................................................................96<br />

Geschachtelte Tabelle mit gedehnten Zellen...........................................................................100<br />

Bilder.......................................................................................................................................100<br />

Eine Fehlermeldung?.......................................................................................................104<br />

Aufzählungen....................................................................................................................104<br />

Bildbeschreibung..............................................................................................................104<br />

Der Trick mit dem blinden GIF........................................................................................104<br />

Hintergrund-Bilder............................................................................................................105<br />

Frames.....................................................................................................................................105<br />

Frame-Sets definieren Mehrere zusammengehörige Frames bilden ein Frame-Set.<br />

Ein Frame-Set definieren Sie anstelle des herkömmlichen BODY-Tags. Wenn<br />

Sie in einer HTML-Datei ein Frame-Set definieren, sieht das Grundgerüst der<br />

Datei folgendermaßen aus:........................................................................................106<br />

Anzeigefenster aufsplitten mit Frame-Sets.......................................................................107<br />

Frames definieren..............................................................................................................108<br />

Eigenschaften von Frames definieren...............................................................................109<br />

Namen von Frames definieren..........................................................................................110<br />

Links, die das Frame-Set beenden....................................................................................111<br />

Sinnvolle Einsatzmöglichkeiten für Frames....................................................................112<br />

Schaufenster-Effekte.........................................................................................................113<br />

Frames und Gestaltung.....................................................................................................114<br />

Üble Tricks........................................................................................................................114<br />

Inline Frames....................................................................................................................116<br />

CSS Style-Sheets.....................................................................................................................117<br />

Style-Sheets in HTML einbinden.....................................................................................118<br />

Style-Sheets definieren.....................................................................................................121<br />

Style-Sheet-Angaben........................................................................................................122<br />

5.10 Automatischer Seitenwechsel oder Dia-Shows........................................................123<br />

5.11 XML - Extensible Markup Language.......................................................................127<br />

<strong>Webdesign</strong>.........................................................................................................................128<br />

Interaktion, Sicherheit, Design-Regeln.............................................................................................128<br />

Interaktion mit dem Benutzer..................................................................................................128<br />

Image-Maps (ISMAP, und USEMAP)...............................................................131<br />

Formulare und CGI-Programme am Server (Common Gateway Interface).....................131<br />

Zugriffe zählen..................................................................................................................132<br />

Formulare..........................................................................................................................135<br />

Mailto Deluxe...................................................................................................................136<br />

Client- und Servertechnik........................................................................................................136<br />

Definitionen......................................................................................................................136<br />

Return-Codes eines WWW-Servers.................................................................................137<br />

Cookies....................................................................................................................................138<br />

Die Datei robots.txt.................................................................................................................139<br />

Wie ist robots.txt aufgebaut?............................................................................................139<br />

Geschützte Bereiche................................................................................................................139<br />

iii


<strong>Webdesign</strong><br />

Table of Contents<br />

Interaktion, Sicherheit, Design-Regeln<br />

Wie .htaccess funktioniert.................................................................................................143<br />

HTML-Editoren.......................................................................................................................144<br />

Design-Regeln.........................................................................................................................145<br />

Empfehlungen für das Gestalten von HTML-Seiten.......................................................145<br />

Aktualität..........................................................................................................................145<br />

Versprechen Sie nichts, was Sie nicht halten können......................................................146<br />

Bunt und zappelig............................................................................................................146<br />

Bilder................................................................................................................................147<br />

Frames..............................................................................................................................147<br />

Farben..............................................................................................................................147<br />

Bewahre uns vor Plug-ins................................................................................................148<br />

Nutzlose Applets..............................................................................................................148<br />

Testen Sie Ihre Homepage...............................................................................................148<br />

Suchmaschinen........................................................................................................................148<br />

Keywords..........................................................................................................................150<br />

Meta-Tags.........................................................................................................................151<br />

Seitentitel und -text...........................................................................................................152<br />

Optimieren Ihrer Seite.......................................................................................................152<br />

Spamindexing...................................................................................................................153<br />

<strong>Webdesign</strong>.........................................................................................................................154<br />

Skript-Sprachen..................................................................................................................................154<br />

Java..........................................................................................................................................154<br />

Java ist objektorientiert.....................................................................................................155<br />

Wichtige Eigenschaften von Java.....................................................................................155<br />

Java ist architekturunabhängig und portabel.....................................................................155<br />

Java ist robust....................................................................................................................156<br />

Java ist multithreaded.......................................................................................................156<br />

Java hat einen Garbage Collector.....................................................................................156<br />

Java ist sicher....................................................................................................................157<br />

Active-X..................................................................................................................................157<br />

Was ist Active-X?.............................................................................................................159<br />

Gefahren von Active-X.....................................................................................................159<br />

JavaScript................................................................................................................................159<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate......................................................160<br />

<strong>Webdesign</strong>.........................................................................................................................161<br />

Anhang.................................................................................................................................................161<br />

Literatur zur Grafik..................................................................................................................161<br />

Literatur zu HTML...........................................................................................................161<br />

Deutschsprachige HTML-Beschreibungen im Netz.........................................................162<br />

"Multimedia im Internet....................................................................................................163<br />

Links für Webmaster.........................................................................................................................163<br />

Verzeichnisse...........................................................................................................................163<br />

HTML-Editoren- und Tools..............................................................................................163<br />

Banner, Grafiken, Layout.................................................................................................164<br />

CGI, Javascripts, Chats, Foren, Inhalte, etc......................................................................164<br />

Site-Management..............................................................................................................165<br />

E-Mail-Adressen...............................................................................................................166<br />

iv


<strong>Webdesign</strong><br />

Table of Contents<br />

Standard-216-Farben-Tabelle..........................................................................................................title<br />

v


Inhalt<br />

1.<br />

2.<br />

3.<br />

4.<br />

5.<br />

Einführung<br />

1. Hypertext und Hypermedia<br />

2. Das World Wide Web<br />

3. Inhaltliche Aspekte<br />

<strong>Webdesign</strong><br />

Grundlagen Bildverarbeitung<br />

1. Bildaten<br />

2. Farbdarstellung<br />

3. Bildkompressionsverfahren<br />

4. Grafikformate<br />

Bildbearbeitung<br />

1. Erste Schritte<br />

2. Weitere Effekte<br />

3. Progressive und transparente Bilder<br />

4. Bildbearbeitung für Webseiten<br />

Video und VRML<br />

1. Videodaten<br />

2. Virtual Reality: VRML<br />

WWW-Dokumente gestalten<br />

1. Aufbau von HTML-Dokumenten<br />

2. Verschiedene Strukturelemente<br />

3. Sonderzeichen<br />

4. Sounds und anderes<br />

5. Farbe<br />

6. Tabellen<br />

7. Bilder<br />

8. Frames<br />

<strong>Webdesign</strong> 1


6.<br />

7.<br />

8.<br />

9. CSS<br />

10. Automatischer Seitenwechsel oder Dia-Shows<br />

11. XML - Extensible Markup Language<br />

Interaktion, Sucherheit, Design-Regeln<br />

1. Interaktion mit dem Benutzer<br />

2. Client- und Servertechnik<br />

3. Cookies<br />

4. Die Datei robots.txt<br />

5. Geschützte Bereiche<br />

6. HTML-Editoren<br />

7. Design-Regeln<br />

8. Suchmaschinen<br />

Skript-Sprachen<br />

1. Clientseitige Interaktion: JAVA<br />

2. Clientseitige Interaktion: ActiveX<br />

3. Clientseitige Interaktion: JavaScript<br />

4. Serverseitige Interaktion: CGI mit Perl<br />

Anhang<br />

1. Literaturverzeichnis<br />

2. HTML-Tabelle<br />

3. Frame-Beispiel<br />

4. Farbtabelle als HTML-Datei<br />

5. Farbtabelle als GIF-Datei<br />

6. Farbspektrum als HTML-Datei<br />

7. Links für Webmaster<br />

9. Skript als PDF (aus HTML konvertiert)<br />

10. Download des gesamten Skripts<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

Letzte Aktualisierung: 28. Apr 2012<br />

<strong>Webdesign</strong><br />

<strong>Webdesign</strong><br />

von Prof. Jürgen Plate<br />

WWW-Dokumente gestalten 2


Einführung<br />

Hypertext und Hypermedia<br />

Schon 1969 stellten in den USA Nelson und Van Dam eine Hypertext-Editor vor, 1976 wurde der<br />

Begriff 'Multiple Media' geprägt, aber erst ca. 1991 ging es richtig los mit dem Apple Multimedia Lab<br />

und dem MIT Media Lab.<br />

Hypertext ist ein Text, der Verweise zu anderen Texten enthät - wie wir es von einem Lexikon her<br />

kennen. Hypertext ist daher nicht-linear, denn man kann zwischen den Texten herumspringen.<br />

Insbesondere für kontextabhängige Hilfesysteme und Online-Handbücher wird Hypertext schon lange<br />

eingesetzt. Das DOS- oder Windows-Hilfesystem ist ein Hypertextsystem.<br />

Hypermedia ist nicht auf Text beschränkt. Hypermedia-Dokumente können andere Medien enthalten,<br />

z. B. Diagramme und Bilder. Dabei gibt es keine Beschränkung auf statische Medien, sondern auch<br />

Sounds, Musik, Animationen und Videoseqenzen lassen sich einbinden. Das World Wide Web ist das<br />

beste Beispiel für Hypermedia.<br />

Das World Wide Web?<br />

Der Ursprung des WWW begann Anfang 1989 am CERN, dem Europäischen Zentrum für<br />

Teilchenphysik bei Genf. Ausgangspunkt war die Entwichlung eines Systems, das den Angehörigen<br />

des CERN erlaubte, in der Vielfalt der vorhandenen Daten auf einfache Art und Weise zu navigieren.<br />

Die Inkompatibilität der vorhandenen Hard- und Software machte das Auffinden relevanter<br />

Information innerhalb der Organisation nahezu unmöglich. Als Lösung dieses Problems wurde von<br />

Tim Berners-Lee und Robert Cailliau ein auf Client/Server Architektur aufbauendes,<br />

hypertextbasiertes System vorgeschlagen, das auf SGML basierte (SGML = Standard Generalized<br />

Markup Language).<br />

Der ISO-Standard definiert SGML als "eine Sprache für Dokumentenrepräsentation, welche Markup<br />

formalisiert und von System- und Verarbeitungsabhängigkeiten löst". SGML erlaubt den Austausch<br />

von großen und komplexen Datenmengen und vereinfacht den Zugriff auf diese. Zusätzlich zu den<br />

Möglichkeiten des deskriptiven Markups benutzen SGML-Systeme ein Dokumentenmodell, welches<br />

die Überprüfung der Gültigkeit eines Textelements in einem bestimmten Kontext erlaubt. Weiterhin<br />

enthält SGML Techniken, die folgendes erlauben:<br />

• Zusammenbindung von Dateien zu einem zusammenhängenden Dokument,<br />

• Einbindung von Illustrationen und Tabellen in Textdateien,<br />

• Erzeugen von mehreren Versionen eines Dokuments in einer einzigen Datei,<br />

• Hinzufügen von Kommentaren in die Datei,<br />

• Kreuzreferenzen<br />

• und vieles mehr<br />

Bei SGML handelt es sich nicht um eine vordefinierte Menge von Textauszeichnungen, sogenannten<br />

'Tags', zum Markieren von Textpassagen. SGML beschreibt nicht das Aussehen des Textes, sondern<br />

sein strukturelles Aussehen. HTML ist eine Untermenge von SGML.<br />

Der grundlegende Aufbau des World Wide Web unterscheidet sich in keiner Weise von anderen<br />

Internet-Diensten. Dokumente auf Servern werden in einem bestimmten Format, im Falle von WWW<br />

dem HyperText-Format HTML, abgespeichert. Mittels geeigneter Clients, im HyperText-Jargon auch<br />

Browser genannt, wird auf Information zugegriffen, die auf dem Server vorhanden ist. Client und<br />

Server verständigen sich untereinander über das HTTP-Protokoll.<br />

Einführung 3


HTML (Hypertext Markup Language) ist also ein Format zur Darstellung von Informationen aller Art,<br />

unabhängig vom verwendeten Betriebssystem oder Rechner.<br />

Inhaltliche Aspekte<br />

Am wichtigsten ist die Vorüberlegung, in der festgelegt wird, welche Inhalte transportiert werden<br />

sollen.<br />

Textgestaltung (Schreiben)<br />

• Denken Sie an Ihre Zielgruppe. Schreiben Sie so, daß ihre Informationen für diese Zielgruppe<br />

passend aufbereitet werden. Das betrifft sowohl Inhalt, als auch den Stil der Datstellung.<br />

• Schreiben Sie so einfach und verständlich wie möglich. Bei Fachausdrücken sollte z. B. beim<br />

ersten Auftreten eine kurze Erklärung dabei sein. Jede Abkürzung darf erst verwendet werden,<br />

wenn die Langfassung aufgeführt wurde.<br />

• Illustrieren Sie komplexe Sachverhalte und beschreiben Sie diese auf verschiedene Art und<br />

Weise.<br />

• Denken Sie an gegenseitige Beziehungen einzelner Teile des Inhaltes. Stellen Sie<br />

Verknüpfungen und Querverbindungen her.<br />

Die Zeit, die der Text dargeboten wird läßt sich sich nach folgender Faustregen abschätzen: Zweimal<br />

langsam leise vorlesen.<br />

Grafikgestaltung (Illustrieren)<br />

• Ein Bild sagt mehr als 1000 Worte (alt, aber gut)<br />

• Erzeugen Sie eigene Bilder (selbst malen, scannen, Photo-CD, Bildersammlungen<br />

durchsuchen und Bilder modifizieren)<br />

• Vermeiden Sie unnötige Bilder, also solche, die zum Verständnis des Inhalts nichts beitragen<br />

• Verwenden Sie eine konsistente Farbgestaltung, z. B. für Hintergründe, Texte, u.s.w.<br />

Verwenden Sie Farbschemata, z. B. nur Pastelltöne, nur Erdfarben, nur Metallicfarben oder<br />

nur Neontöne.<br />

• Verwenden Sie ein einheitliches Layout (Schriftart, -größe) und nicht zuviele verschiedene<br />

Schriftarten. Ein Buch kommt z. B. mit zwei bis drei Schriftfamilien aus.<br />

Animationen<br />

<strong>Webdesign</strong><br />

• Typen von Animationen<br />

♦ Trickfilm (Character Animation): Man verleiht einem Objekt menschliche Züge. Man<br />

kann so einer Zahnbürste, einem Auto, einer Bohrmaschine, einem Spielzeug etc.<br />

'Leben' verleihen. Beim Entwurf des Characters sind zu beachten:<br />

◊ Emotionen (glücklich, spassig, traurig, uninteressiert, ...)<br />

◊ Bewegung (schnell, langsam, tolpatschig, ...)<br />

◊ Erscheinung (muß zum Stil des Gesamtwerks passen)<br />

◊ Copyright (Micky Maus nur verwenden, wenn man die Erlaubnis von Disney<br />

hat)<br />

♦ Hervorhebungen: Ein wichtiges Wort zoomt aus dem Text heraus, ein Logo bewegt<br />

sich, etc.<br />

♦ Bewegter Text: Die Schrift erscheint z. B. Zeichen für Zeichen als würde sie getippt,<br />

ein Wort pulsiert, Laufschrift, Textblöcke 'poppen' aus dem Hintergrund, etc.<br />

Aber Vorsicht: Laufschriften oder andere Schrifteffekte machen den Text leicht<br />

unlesbar. Also nur in Ausnahmefällen verwenden.<br />

Das World Wide Web? 4


♦ Video: Digitalisierte Videos sind oft beeindruckender als Photos und meist auch<br />

leichter herzistellen als Trickfilme. Sie benötigen jedoch sehr viel Speicherplatz. Für<br />

den Schnitt benötigt man meist spezielle Hard- oder Software.<br />

• Wann soll man animieren? Animationen sollten - wie letztlich auch Bilder - nicht ohne<br />

triftigen Grund auftauchen. Nur 'Zappeln um des zappelns willen' ist schlecht.<br />

♦ Emotionen verstärken<br />

♦ Darstellungen von Handlungen (z. B. Zusammenbau eines Gerätes)<br />

♦ Hervorheben von Informationen<br />

♦ Zeitabläfe anzeigen ('Fortschrittsbalken', Sanduhr, etc.)<br />

♦ Übergang zum nächsten Kapitel oder Abschnitt, z. B. Auf- und abblenden,<br />

Wischblenden, Überblendungen, Schnitt.<br />

Sorgen Sie am Ende des Videos für eine kurze 'Ausklingzeit', eine Pause von einigen Sekunden, in der<br />

sich der Betracher wieder sammeln kann.<br />

Akustische Informationen<br />

• Musik: Sie dient der Untermalung der dargestellten Bilder und Texte und kann auch<br />

bestimmte Stimmungen und Emotionen hervorrufen.<br />

• Geräuscheffekte: Sie bringen etwas 'Leben' ind die multimediale Präsentation und heben<br />

bestimmte Dinge hervor.<br />

• Sprache: Mit ihr können die bildlichen Darstellungen erklärt und kommentiert werden.<br />

Achtung: 'Vorlesen' des Textes, der auf dem Bildschirm erscheint, ist Unsinn.<br />

Interaktion<br />

<strong>Webdesign</strong><br />

Im Gegensatz zu Film, Fernsehen, Diashow, usw. ist eine hervorstechende Eigenschaft multimedialer<br />

Systeme, weshalb man bei der Konzeption auf jeden Fall auch auf Interaktion mit dem Benutzer<br />

achten sollte. Schon 1980 wurde in einer Studie festgestellt, daß der Mensch sich viel mehr<br />

Informationen merkt, wenn er mit dem System im Dialog ist. Wichtig ist hier, daß die Bedienung<br />

konsistent und einheitlich ist, damit der Benutzer nicht verwirrt oder überfordert ist.<br />

Eine ebenso wichtige Rolle spielt die Laufzeit der einzelnen Passagen oder Takes. Wenn<br />

beispielsweise eine Video zu lange dauert und sich nicht abbrechen läßt, wird der Benutzer sich<br />

schnell verärgert abwenden. Bewährt haben sich folgende Zeiten:<br />

• selbstlaufend (nicht zu unterbrechen): 2 - 3 Minuten<br />

• mit beschränkter Interaktion: 5 - 6 Minuten<br />

• vollständige, interaktive Unterweisung: bis 15 Minuten<br />

• Lernprogrammlektion: ca. 30 Minuten<br />

Multimedia-Anwendungen lassen sich in drei Gruppen einteilen:<br />

• Menügesteuerte Programme und Präsentationen: Diese haben oft eine hierarchische Struktur<br />

aus Menüs und Untermenüs.<br />

• Hypermedia-Anwendungen: Hier bietet sich die vorteilhafte Möglichkeit von Querverweisen<br />

und einer vermaschten Struktur, die einen schnellen Zugriff auf die gewünschte Info erlaubt.<br />

Hier lassen sich auch mehr multimediale Eigenschaften einbringen, aber gleichzeitig besteht<br />

die Gefahr, daß sich der Benutzer in den Dokumenten 'verliert'.<br />

• Simulationen: In diese Gruppe fallen Spiele genauso wie ernsthafte Simulationen technischer<br />

oder wirtschaftlicher Vorgänge.<br />

Animationen 5


Software für Multimedia-Designer<br />

Zum Erstellen von Multimedia-Applikatioen benötigt man Software aus den unterschiedlichsten<br />

Bereichen:<br />

• Soundbearbeitung: Programme zum Aufnehmen und Bearbeiten von Klängen und Musik über<br />

die Soundkarte. MIDI-Sequencer und -Bararbeitungsprogramm; gegebenenfalls mit der<br />

Möglichkeit, Noten zu schreiben und umzusetzen.<br />

• Bildbearbeitung: Programme zum Bearbeiten von Pixelgrafik und für Photos. Wichtig sind<br />

hier diverse Malwerkzeuge, Filter- und Effektfunktionen. Außerdem sollten die Programme<br />

das Konvertieren verschiedener Dateiformate erlauben. Typische Vertreter sind Paintshop,<br />

Photoshop, PhotoSuite, PhotoImpact, xv.<br />

Die andere Gruppe von Programmen zur Grafikerzeugung bilden die sogenannten<br />

Konstruktionstools, die Vektorgrafiken erzeugen, z. B. AutoCAD, Autosketch. Schließlich<br />

gibt es noch spezielle Programme zum Erzeugen von Diagrammen, z. B. Visio.<br />

• Video- und Animationsbearbeitung: Um Animationen zu bearbeiten sind Programme nötig,<br />

die es erlauben, Einzelbilder zu Filmen zusamenzusetzen. Manche dieser Tools erlauben auch<br />

automatische Generierung von Zwischenphasen. Bei der Erstellung eigener Trickfilme wird<br />

zuerst ein Drahtmodell der Objekte verwendet, das dann in einem zweiten Schritt, dem<br />

sogenannten 'Rendering' in ein 3D-Bild mit Beleuchtung und glatten Oberflächen übergeführt<br />

wird. Weiterhin sollte das Programm gestatten, beliebige Bilder oder Texturen auf die<br />

Objektoberfläche abzubilden. Beispiel: Adobe Premiere, MGI VideoWave.<br />

• Autorensysteme: Um komplette Multimedia-Präsentationen zu erstellen werden gerne<br />

Autorensysteme verwendet. Sie ermöglichen das Zusammenführen von Text, Bild, Video und<br />

Sound und den Einbau interaktiver Elemente. Sie beherrschen eine Skriptsprache (z. B.<br />

Lingo), die auch Fehlersuche und Simulation der MM-Applikation erlaubt. Das Ergebnis wird<br />

dann mit einem Abspielprogramm zusammengebunden und beispielsweise auf CD-ROM<br />

gespeichert. Typische Vertreter dieser Autorensysteme sind Macromedia Director oder<br />

Authorware.<br />

Seit der Entwicklung des World Wide Web (mit HTML) genügt schon ein Texteditor zur<br />

Produktion multimedialer Dokumente (siehe Kapitel 4).<br />

Zielgruppe definieren<br />

<strong>Webdesign</strong><br />

1. Erforschen Sie das spezifische Know-how und die individuellen Ansprüche ihrer Zielgruppe.<br />

2. Erforschen Sie die sozialen Wertvorstellungen Ihrer Zielgruppe.<br />

3. Erforschen Sie die grundlegenden Wünsche und Ängste ihrer Zielgruppe.<br />

Startet ein Anwender eine CD oder betritt ein Besucher eine Homepage, so hat er eine Reihe von<br />

Fragen:<br />

• Wo bin ich?<br />

• Wo kann ich hin?<br />

• Ist das das Richtige für mich?<br />

• Wie alt ist die Information?<br />

• Von wem ist die Information?<br />

• Werde ich hier meine Zeit verschwenden?<br />

• Gibt es hier überhaupt etwas, was mich interessiert?<br />

• Gibt es noch etwas Besseres?<br />

• Wo verstecken sich die coolen Sachen?<br />

• Wie lange dauert es?<br />

• Darf ich das?<br />

• Ist das riskant?<br />

Software für Multimedia-Designer 6


All diese Fragen müssen bestmöglich beantwortet werden. Dabei helfen die folgenden Richtlinien:<br />

• Muß sich ein User erst durch drei Menüseiten klicken, um zu einer weiteren Auswahlseite zu<br />

gelangen, wächst die Unlust<br />

• Hyperlinks müssen klar bezeichnet und informativ sein<br />

• Schaffen sie übersichtliche Menüs und Inhaltsangaben<br />

• Für umfangreiche Datenmengen empfiehlt sich eine Suchfunktion<br />

• Weniger ist mehr. (im Web: Ladezeit contra Volumen --> pro Seite nicht mehr als 40 KByte)<br />

• Verwenden Sie möglichst wenig Schriftarten innerhalb eines Dokuments<br />

• Der Schrift-Charakter sollte die inhaltliche Aussage unterstützen<br />

• Eine schlichte Schrift ist auf dem Bildschirm leichter zu lesen; setzen Sie Fettschrift nur<br />

sparsam ein<br />

• Verwenden Sie Farben und Schattierungen, um bestimmte Wörter hervorzuheben<br />

• Schriften mit Serifen (Times, Concorde, Courier, usw.) sind besser lesbar als (serifenlose)<br />

Groteskschriften (Helvetica, Arial, etc.).<br />

• Gehen Sie sparsam mit Fettdruck und Kursivschrift um.<br />

• Verwenden Sie Groß- und Kleinschreibung und nicht reine Großschreibung<br />

• Kurze Absätze werden als bildliche Ideen wahrgenommen<br />

Web 2.0<br />

<strong>Webdesign</strong><br />

Der Begriff Web 2.0 geht auf eine Konferenz des Verlags O'Reilly zurück und beschreibt eine<br />

Vielzahl von Aspekten, die sich in den letzten Jahren abzeichnen: Nutzer werden zu<br />

Medienproduzenten, Software wird sozial, es zeigt sich eine wachsende Offenheit, Internetangebote<br />

werden besser integrierbar, der Grad der Vernetzung steigt und Applikationen werden verstärkt ins<br />

Netz verlagert. Der Begriff postuliert in Anlehnung an die Versionsnummern von Softwareprodukten<br />

eine neue Generation des Webs und grenzt diese von früheren Nutzungsarten ab.<br />

Der Begriff Web 2.0 bezieht sich neben spezifischen Technologien oder Innovationen wie Cloud<br />

Computing primär auf eine veränderte Nutzung und Wahrnehmung des Internets. Er grenzt die<br />

interaktiven Nutzungsarten vom Vorgänger ab, in dem es nur wenige "Bearbeiter" (Erstellung von<br />

Inhalten für das Web oder Bereitstellung von Informationen), aber zahlreiche Konsumenten, die die<br />

bereitgestellten Inhalte passiv nutzten gegeben habe. Die Benutzer erstellen, bearbeiten und verteilen<br />

Inhalte in quan-titativ und qualitativ entscheidendem Maße selbst, unterstützt von interaktiven<br />

Anwendungen.<br />

Ebenfalls wird angeführt, dass das Web zu Beginn vor allem aus statischen HTML-Seiten bestanden<br />

habe, von denen viele für längere Zeit unverändert ins Netz gestellt und nur gelegentlich überarbeitet<br />

oder in größeren Zeitabständen ausgetauscht wurden. Damit sich Seiten auch von mehreren Menschen<br />

effizient bearbeiten und verwalten lassen, seien Content-Management-Systeme und aus Datenbanken<br />

gespeiste Systeme entwickelt worden, die während der Laufzeit die Inhalte von Seiten dynamisch<br />

austauschen oder neue Inhalte einzusetzen helfen. Seither haben folgende Entwicklungen bei Web 2.0<br />

zur veränderten Nutzung des Internets beigetragen:<br />

• Die Trennung von lokal verteilter und zentraler Datenhaltung schwindet: Auch Anwender<br />

ohne große technische Kenntnis oder Anwendungserfahrung benutzen Datenspeicher im<br />

Internet (etwa für Fotos). Lokale Anwendungen greifen auf An-wendungen im Netz zu;<br />

Suchmaschinen greifen auf lokale Daten zu. Stichwort: Cloud Computing.<br />

• Die Trennung lokaler und netzbasierter Anwendungen schwindet: Programme aktualisieren<br />

sich selbstständig über das Internet, laden Module bei Bedarf nach und immer mehr<br />

Anwendungen benutzen einen Internet-Browser als Benutzer-schnittstelle.<br />

• Neben einer strengen Rollenverteilung zwischen Bearbeitern oder Anbietern von<br />

Informationen auf der einen Seite und reinen Konsumenten auf der anderen Seite sind<br />

einfache Angebote zu teil- oder zeitweise stattfindendem Rollentausch getre-ten: Anwender<br />

Zielgruppe definieren 7


<strong>Webdesign</strong><br />

mit kaum mehr als durchschnittlicher EDV-Kenntnis stellen eigene Beiträge auf Server (User<br />

Generated Content, Wikis), pflegen Weblogs (Blogs) und verlagern auch private Daten ins<br />

öffentliche Netzwerk.<br />

• Es ist nicht mehr die Regel, die einzelnen Dienste getrennt zu nutzen, sondern die Webinhalte<br />

verschiedener Dienste werden über offene Programmierschnittstellen nahtlos zu neuen<br />

Diensten verbunden (Mashups).<br />

• Durch Neuerungen beim Programmieren browsergestützter Anwendungen kann ein Benutzer<br />

auch ohne Programmierkenntnisse viel leichter als bisher aktiv an der Informations- und<br />

Meinungsverbreitung teilnehmen.<br />

Mitte 2010 nutzten mehr als 200 Mio. Menschen weltweit Facebook, mySpace, Xing oder andere<br />

Social-Media-Sites. YouTube ist die bekannteste Website zum Abspielen von Filmen. Und in Flickr<br />

und anderen Foto-Communities zeigen sich ebenfalls viele Millionen Menschen weltweit ihre Bilder.<br />

Web 2.0 begann Anfang dieses Jahrtausends mit der Nutzung von Weblogs (Blogs). Dies waren<br />

ursprünglich Tagebücher im World Wide Web. Ihr großer Vorteil: Es handelt sich um sehr einfache<br />

Content-Management-Systeme. Mit wenigen Klicks kann man sie einrichten und losschreiben. Man<br />

braucht nich einmal Kenntnisse in HTML oder Web-Programmierung. Jeder kann damit sehr einfach<br />

sein eigener Publizist wer-den. Blogs sind damit ein wichtiger Schritt in der Demokratisierung des<br />

Zugangs zur Öffentlichkeit. Wer will, kann sich öffentlich mitteilen und sein Publikum suchen. Die<br />

Geschichte der Blogs ist übrigens in den verschiedenen Ländern durchaus unterschiedlich. In den<br />

USA nutzen Journalisten Blogs zur Veröffentlichung von Themen, die sie in anderen Medien nicht<br />

platzieren können. So ist es nicht verwunderlich, wenn es hier mittlerweile Blogs gibt, die es in der<br />

politischen Meinungsbildung mit großen Zeitun-gen oder Fernsehkanälen aufnehmen können. In<br />

Deutschland spielen Blogs noch lange nicht diese Rolle. Auch wenn hier die Bedeutung politischer<br />

Blogs zunimmt - die politische Meinungsbildung beeinflussen sie noch lange nicht in dem Maße wie<br />

in den USA. O'Reilly und Battelle fassten Schlüsselprinzipien zur Charakterisierung von<br />

Anwen-dungen zusammen, die dem Begriff Web 2.0 zugeordnet werden können:<br />

• das Web als Plattform (anstatt des lokalen Rechners)<br />

• datengetriebene Anwendungen (Inhalte sind wichtiger als das Aussehen)<br />

• die Vernetzung wird verstärkt durch eine "Architektur des Mitwirkens" (jeder kann<br />

mitmachen)<br />

• Innovationen beim Aufbau von Systemen durch Komponenten, die von verschiedenen<br />

Entwicklern erstellt worden sind und beliebig miteinander kombiniert werden können (ähnlich<br />

Open-Source)<br />

• einfache Geschäftsmodelle durch das verteilte, gemeinsame Nutzen von Inhalten und<br />

technischen Diensten<br />

• das Ende des klassischen Softwarelebenszyklus; die Projekte befinden sich immerwährend im<br />

Entwicklungsstadium<br />

• die Software geht über die Fähigkeiten eines einzelnen Verwendungszwecks hinaus<br />

• es wird nicht nur auf die Vorhut von Web-Anwendungen abgezielt, sondern auf die breite<br />

Masse der Anwendungen<br />

Tim Berners-Lee, der Begründer des WWW, sagte 2006 über den Begriff "Web 2.0": "I think Web 2.0<br />

is of course a piece of jargon, nobody even knows what it means" (Ich denke, Web 2.0 ist ein<br />

Schlagwort, von dem niemand weiß, was es wirklich bedeutet.). Er vertritt die Ansicht, das angeblich<br />

"neue Netzverständnis" des Web 2.0 sei in Wahrheit nichts anderes als das ursprüngliche, schon<br />

immer vorhandene Netzver-ständnis ("Web 1.0 was all about connecting people"). Berners-Lee<br />

konzipierte das Web von Anfang im gleichen Maße zum Publizieren wie zum Konsumieren der<br />

Inhalte.So war auch der erste von ihm entwickelte Webbrowser bereits Editor und Browser zugleich.<br />

Zudem wird von Kritikern angeführt, der Begriff Web 2.0 verallgemeinere lediglich die normale,<br />

konsequente Weiterentwicklungen des WWW. Er sei eine Marketingbla-se, welche es vermeidet,<br />

Neuerungen genau zu beschreiben. Beispielsweise fasst man unter dem Oberbegriff Web 2.0 so<br />

Web 2.0 8


unterschiedliche Dinge wie Client-Server-Anwendungen und soziale Netzwerke zusammen. Des<br />

Weiteren lege der Begriff Web 2.0 vereinfachend nahe, das Internet sei interaktiver geworden, obwohl<br />

es schon seit den Anfängen des Internet aktive Usenet-Gemeinden gegeben habe; genau wie später im<br />

WWW auch viele Forengemeinschaften. Daher beinhalte Web 2.0 nichts Neues. Auch seien die<br />

verwendeten Techniken schon lange, bevor sie unter diesem Begriff verwendet wurden, vorhanden<br />

gewesen. Kritikern zufolge könnten viele der mit dem Begriff verbundenen interaktiven Konzepte<br />

dem Benutzer einen Teil seiner Autonomie nehmen und damit zum Kern neuer Strategien werden, in<br />

denen allein eine stete Bindung an den Anbieter die Aktualität und die Vollständigkeit einzelner<br />

Angebote siche-re. Dadurch dass eine Kontrolle der Inhalte fehle, sei auch der Wahrheitsgehalt oder<br />

die wissenschaftliche Relevanz der Beiträge von höchst unterschiedlicher Qualität.<br />

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

Letzte Aktualisierung: 21. Feb 2011<br />

<strong>Webdesign</strong><br />

<strong>Webdesign</strong><br />

von Prof. Jürgen Plate<br />

Web 2.0 9


Grundlagen Bildverarbeitung<br />

Bilddaten<br />

Auf den folgenden Seiten erfahren Sie etwas über Farbmodelle in der Computergraphik sowie über die<br />

Grafikformate.<br />

Grundlegendes<br />

Rasterformate<br />

Grundsätzlich sind Bilder, die man auf dem Monitor sieht, in einzelne Bildpunkte unterteilt -<br />

sogenannte Pixel (Picture Elements). Die Auflösung wird bestimmt durch die Anzahl der Pixel, die<br />

ein Bild pro Flächeneinheit enthält. Je höher die Auflösung, desto besser die Qualität. Als Bit Map<br />

bezeichnet man die Speicherung eines Bildes auf ähnliche Art wie sie im Bildwiederholspeicher des<br />

Computers abgelegt werden.<br />

Vorteile:<br />

Nachteile:<br />

♦ Einfach zu erstellen. Ein Scanner gibt die Daten z.B. als Bitmap aus.<br />

♦ Pixel können sehr einfach einzeln oder in Gruppen manipuliert werden (z.B.<br />

Änderung der Farbe).<br />

♦ Können für ein Ausgabegerät optimal erstellt werden, wenn dieses Daten<br />

pixelweise ausgibt. Dazu gehören z. B. Monitore.<br />

♦ Dateien können sehr groß werden, insbesondere wenn das Bild sehr viele<br />

Farben enthält. Durch geeignete Kompressionsverfahren kann diese<br />

Datenmenge u.U. reduziert werden.<br />

♦ Bitmaps lassen sich schlecht verkleinern oder vergrößern (skalieren). Beim<br />

Vergrößern werden im wesentlichen einzelne Pixel dupliziert, so daß das Bild<br />

unannehmbar verändert werden kann. Beim Verkleinern werden einzelne<br />

Pixel einfach verworfen. Daher können Bitmaps meist nur in der Auflösung<br />

vernünftig gedruckt werden, mit der sie erstellt wurden.<br />

In früheren Versionen dieses Skripts habe ich Bildschirm und Drucker in einen Topf geworfen. Dazu<br />

schrieb mir aber Rüdiger Heierhoff von der Akademie für interaktive Medien und Kommunikation<br />

GmbH eine interessante E-Mail, die ich hier weitergeben will:<br />

... Meiner Meinung nach geben Drucker diese Daten eben nicht als Pixel aus, sondern als Punkt<br />

(Dot). Wie Sie weiter unten erläutern, wird z. B. bei Echtfarbenbildern (24-bit) jedes "Pixel ... durch<br />

drei Bytes repräsentiert (z. B. RGB)..."<br />

Anders ausgedrückt, EIN Pixel enthält die Farbinformationen für Cyan, Magenta und Gelb (CMY).<br />

Um diese Informationen darzustellen, benötigt ein Farbdrucker mindestens DREI Punkte. Praktische<br />

Konsequenz ist (grob gesagt), das die effektiv nutzbare Auflösung eines 600 dpi Bildes eigentlich nur<br />

200 dpi beträgt. Dazu kommt noch die Rasterfrequenz mit der der Drucker das Druckbild erzeugt<br />

etc.(s.a. Baufeldt/Rösner/Scheuermann/Walk: Informationen übertragen und drucken, Lehr-und<br />

Arbeitsbuch für das Berufsfeld Drucktechnik; Verlag Beruf + Schule, Itzehoe 1977 und 1998).<br />

Dazu ist es wichtig zu verstehen, dass die gespeicherte elektronische Bilddatei eigentlich keine<br />

Längenausdehnung besitzt, im Gegensatz zum gedruckten Bild. Die Angabe der Auflösung macht<br />

daher immer nur dann Sinn, wenn es um die Ausgabe z.B. auf einen Drucker geht (X cm Breite mal Y<br />

cm Höhe bei Z dpi). Für die Bildschirmausgabe reicht in der Regel die Angabe der Bildmaáe in Pixeln<br />

(X Pixel Breite mal Y Pixel Höhe).<br />

Grundlagen Bildverarbeitung 10


In der Fachliteratur wird übrigens dem von mir angedeuteten Umstand insofern Rechnung getragen,<br />

als es für Pixel pro Inch und Punkte pro Inch entsprechende Bezeichnungen gibt: ppi (Pixel pro Inch)<br />

bzw. dpi (Punkte pro Inch), wobei in der Regel jedoch für beide Bezeichnungen dpi benutzt wird.<br />

Vektorformate<br />

Diese Formate zur Speicherung von Daten enthalten eine mathematische Beschreibung einzelner<br />

Objekte eines Bildes (z. B. Linien, Kreise, Polygone). Im einfachsten Fall kann beispielsweise eine<br />

Linie beschrieben werden durch den Startpunkt, eine Richtung sowie die Länge.<br />

Vorteile:<br />

Nachteile:<br />

Monochrome Bilder<br />

♦ Ideal zur Speicherung von Bildern, die entweder linienbasierte Information<br />

enthalten oder die Elemente enthalten, die leicht in linienbasierte Information<br />

zu überführen sind (z. B. Text).<br />

♦ Leicht skalierbar und manipulierbar<br />

♦ Meist einfach in andere Vektor- oder Rasterformate wandelbar.<br />

♦ Nicht geeignet zur Speicherung von extrem komplexen Bildern, z. B.<br />

Fotografien mit pixelweise wechselnden Farben.<br />

♦ Das Erscheinungsbild kann stark von der Anwendung abhängen, mit der die<br />

Vektordatei eingelesen wird. Identische Vektordaten werden leider nicht<br />

immer identisch interpretiert.<br />

♦ Die Ausgabequalität ist nur optimal bei Vektorausgabegeräten wie z.B.<br />

Plotter.<br />

• Jedes Pixel ist als Binärwert gespeichert (0 oder 1).<br />

• Ein Monochrombild mit 640 x 480 Pixeln belegt 37,5 KByte Speicher.<br />

• Oft wird Dithering verwendet, um Graustufen nachzubilden.<br />

Graustufen-Bilder<br />

<strong>Webdesign</strong><br />

• Jedes Pixel wird als Zahlenwert gespeichert (normalerweise 8 Bit, also ein Wert zwischen 0<br />

und 255).<br />

• Ein Graustufenbild mit 640 x 480 Pixeln belegt ca 300 KByte Speicher.<br />

Grundlegendes 11


Farbbilder (8 Bit)<br />

• Jedes Pixel wird durch ein Byte repräsentiert.<br />

• Unterstützt 256 Farben aus einer Palette von 16 777 216 mögliche Farben (akzeptable<br />

Farbenvielfalt).<br />

• Verwendet eine Farbtabelle (Color Look-Up Table, CLUT), auch 'Palette' genannt.<br />

• Ein Bild mit 640 x 480 Pixeln belegt ca. 300 KByte Speicher.<br />

Echtfarbenbilder (24 Bit)<br />

<strong>Webdesign</strong><br />

• Jedes Pixel wird durch drei Bytes repräsentiert (z. B. RGB).<br />

• Unterstützt 256 x 256 x 256 mögliche Farben (16 777 216).<br />

• Ein Bild mit 640 x 480 Pixeln belegt ca. 900 KByte Speicher.<br />

• Bei manchen 24-Bit-Formaten wird in einem vierten Byte weitere Info gespeichert (z. B. für<br />

spezielle Effekte).<br />

Grundlegendes 12


Farbensehen beim Menschen<br />

<strong>Webdesign</strong><br />

Farbdarstellung<br />

Der Abschnitt über Farbmodelle erklärt zuerst, wie das Farbensehen beim Menschen zustande kommt,<br />

bevor auf wichtige Farbmodelle näher eingegangen wird. Im einzelnen sind dies das RGB-Modell, das<br />

CMY-Modell und das YIQ-Modell.<br />

Licht ist elektromagnetische Strahlung und das für den Menschen sichtbare Spektrum ist der<br />

Wellenlängenbereich von 400 nm (Violett) bis 700 nm (Rot). Farben sind ein grundlegender<br />

Bestandteil unseres Lebens. Das Farbempfinden ist bei jedem Menschen unterschiedlich.<br />

Sichtbares Licht ist ein ganz kleiner Teil des Wellenspektrums. Je nach<br />

Länge der Wellen in diesen Spektrum erscheint ein Lichtstrahl in einer<br />

bestimmten Farbe. Ein Lichtstrahl mit einer Wellenlänge von 700 nm<br />

erscheint rot, ein Lichtrahl mit einer Wellenlänge von ca 500 nm erscheint<br />

blau. So entstehen die Farben. Wenn ein weißer Lichtstrahl (ein Gemisch<br />

aller Wellenlängen) auf eine Fläche prallt, die alle Wellenlängen außer Rot<br />

absorbiert, dann erscheint diese Fläche rot.<br />

Für das Farbensehen beim Menschen sind bestimmte Sehzellen, die sogenannten Zapfen zuständig. Es<br />

gibt drei verschiedene Sorten von Zapfen in der Netzhaut, die jeweils mit einem anderen<br />

lichtempfindlichen Farbstoff ausgestattet sind. Ein reines Licht von 400 nm Wellenlänge erregt nur<br />

den 'Blaurezeptor' unter den Zapfen. Ein Licht der Wellenlänge 450 nm erregt den 'Blaurezeptor' stark<br />

und den Grünrezeptor sehr schwach. Licht von 500 nm Wellenlänge spricht alle drei Zapfensorten an.<br />

Die einzelnen Farbeindrücke werden also durch unterschiedliche Erregungsstärken der einzelnen<br />

Zapfensorten ausgelöst. Gleiche Erregung aller Zapfen führt zum Eindruck ,,weiß``. Es genügen also<br />

drei Grundfarben, um als deren Mischung alle Farben darzustellen.<br />

Farbdarstellung 13


<strong>Webdesign</strong><br />

Betrachtet man Farben nur im Hinblick auf ihren Farbton und nicht auf Helligkeit und Sättigung, so<br />

liegt die Wellenlänge zwischen zwei gerade noch als unterschiedlich zu erkennende Farben zwischen<br />

2 nm und 10 nm, je nachdem aus welchem Wellenlängenbereich die Farben stammen. Zur Codierung<br />

einer Farbe sind so 3 x 8 = 24 Bit ausreichend. Das folgende Diagramm zeigt die Spektren der (reinen)<br />

Grundfarben, die man addieren kann, um alle sichtbaren Farben darzustellen. Ein negativer Wert<br />

bedeutet dabei, daß die entsprechende Farbe nicht exakt darstellbar ist.<br />

Um alle Farben darstellen zu können, muß man von den Grundfarben abgehen und 'nicht-reine' Farben<br />

verwenden. 1931 definierte die CIE drei Standard-Primärfarben, (X,Y,Z). Die Primärfarbe Y ist dabei<br />

an die Helligkeitsempfindlichkeit des menschlichen Auges angepaßt<br />

Farbensehen beim Menschen 14


Farb-Kontraste<br />

Farb-Kontraste sind besonders wichtig, wenn mit farbiger Schrift auf farbigem Hintergrund gearbeitet<br />

wird, denn für die Lesbarkeit des Textes ist nicht allein die Schriftgröße entscheidend.<br />

Grundfarben-Kontrast<br />

Die "klassischen" Grundfarben Blau, Gelb und Rot bilden<br />

untereinander einen starken Farbkontrast.<br />

Hell-Dunkel-Kontrast<br />

Hier handelt es sich um die gleiche Farbe, jeweils als sehr helle<br />

oder sehr dunkle Nuance.<br />

Komplementär-Kontrast<br />

Die komplementären Farben liegen sich im Farbkreis<br />

gegenüber: Rot - Grün, Gelb - Lila, Orange - Blau.<br />

Qualitätskontrast<br />

Farbqualität bedeutet die Intensität einer Farbe zwischen<br />

Reinheit und Trübung.<br />

Quantitätskontrast<br />

Mengenverhältnis von Farben zueinander (in der Fläche).<br />

Simultan-Kontrast<br />

Dieselbe Farbe wirkt auf unterschiedlichem Hintergrund<br />

verschieden.<br />

Farb-Perspektive<br />

<strong>Webdesign</strong><br />

Nicht nur durch Linien, auch mit Farben läßt sich eine räumliche Wirkung erreichen.<br />

Farb-Kontraste 15


Dominante Farben<br />

Einige Farben drängen sich mehr als andere in den<br />

Vordergrund. Ein Beispiel dafür sind die Signal-Farben Rot<br />

oder Orange.<br />

Helle Farben treten in dunkler Umgebung in den Hintergrund.<br />

Auf der anderen Seite treten dunklere Farben vor hellem<br />

Hintergrund hervor.<br />

Luftperspektive<br />

Man kennt es aus der Natur oder aus Gemählden: wenn man in<br />

die Ferne schaut, wird die Landschaft zum Horizont hin immer<br />

bläulicher. Diesen Effekt kann man ausnutzen, um Tiefe in<br />

einem Bild zu erreichen.<br />

Farb-Wirkung<br />

Auch auf die Wirkung der Farbwahl auf den Betrachter sollte man achten, damit das Erscheinungsbild<br />

der Webseiten nicht deren Inhalt widerspricht. Seriöse Firmen meiden beispielsweise knallige Farben.<br />

Die Wirkung von Farben ist jedoch kein allgemeingültiges Gesetz, und wird nicht von jedem<br />

Betrachter gleich empfunden.<br />

Langes Lesen ermüdet, Bildschirmarbeit sogar noch mehr. Ziel des <strong>Webdesign</strong> soll sein, die<br />

Augenbelastung zu vermindern. Die höchste Belastung entsteht durch weißes Licht. Auch warme<br />

Farben belasten uns mehr als kalte Farben. Am geringsten belasten uns Farben im Bereich Laubgrün<br />

bis Gelbgrün.<br />

Farbwahrnehmung erzeugt beim Menschen auch bestimmte psychische Empfindungen:<br />

Warme Farben<br />

Als "warm" gilt die Gelb-Orange-Rot Palette.<br />

• Rot: Aufreizend, beunruhigend, nah; warme<br />

Farbtemperaturwirkung<br />

• Gelb: Anregend, nah; sehr warme Temperaturwirkung<br />

Diese Farben werden häufig verwendet, wenn Gefühle<br />

ausgedrückt werden, sie haben eine eher anregende Wirkung.<br />

Kalte Farben<br />

Als "kühl" werden Blau-Grün-Töne empfunden.<br />

<strong>Webdesign</strong><br />

• Grün: Beruhigend, entfernt; neutrale bis kalte<br />

Temperaturwirkung<br />

• Blau: Beruhigend, entfernt; sehr kalte<br />

Temperaturwirkung<br />

Farb-Perspektive 16


Neutrale Farben<br />

Weiß, Grau und Schwarz wirken am sachlichsten, aber<br />

manchmal auch etwas langweilig.<br />

Farbmodelle<br />

Man unterscheidet physikalisch-technische und wahrnehmungsorientierte Farbmodelle. Die<br />

wahrnehmungsorientierten Farbmodelle wie z. B. das HLS-Modell sind mehr auf das<br />

Wahrnehmungsempfinden des Menschen ausgerichtet, das sich eher an den Parametern Farbton<br />

(Hue), Helligkeit (Lightness) und Sättigung (Saturation) orientiert.<br />

Die physikalisch-technischen Farbmodelle beschreiben eine Farbe als Mischung dreier<br />

Primärfarben. Die Unterschiede zwischen den einzelnen Modellen liegen in der Wahl der<br />

Primärfarben und der Art der Farbmischung. Zu den wichtigsten technischen Farbmodellen zählen:<br />

• RGB-Modell: Ausgabe auf Monitoren<br />

• CMY-Modell: Ausgabe auf Papier<br />

• YIQ-Modell: Fernsehtechnik<br />

Ein Farbmodell soll dazu dienen, Farben anhand einer bestimmten Farbskala zu beschreiben. Ein<br />

Farbmodell kann nicht alle sichtbaren Farben beschreiben, sondern nur eine Untermenge daraus. Die<br />

für die graphische Datenverarbeitung wichtigeren physikalisch-technischen Farbmodelle sollen nun<br />

näher untersucht werden.<br />

Das RGB-Modell<br />

<strong>Webdesign</strong><br />

Das RGB-Modell ist ein additives Farbmodell, d.h. mischt man die drei Farben Rot, Grün und Blau<br />

mit bestimmten Intensitäten zusammen, so ergibt sich die Farbe Weiß. Um verschiedene Farben zu<br />

mischen, variiert man die Intensitäten der drei Grundfarben. Mit dem beschriebenen (RGB)-Modell<br />

arbeiten die meisten Bildbearbeitungsprogramme.<br />

Beim RGB-Modell werden die darstellbaren Farben als Punkte eines im Ursprung eines Kartesischen<br />

Koordinatensystems liegenden Einheitswürfels beschrieben. Auf den positiven Achsen dieses<br />

Koordinatensystems werden die drei Primärfaben Rot, Grün und Blau aufgetragen. Die<br />

Hauptdiagonale des Einheitswürfels, sie geht vom Punkt (0,0,0) zum Punkt (1,1,1), enthält die Farben<br />

mit gleich großem Anteil an allen Primärfarben. Sie repräsentiert die Grauwerte, wobei Schwarz im<br />

Ursprung (0,0,0) und Weiß im Punkt (1,1,1) liegen. Eine Farbe wird dann durch die Anteile an den<br />

drei Primärfarben beschrieben, die zur Farbe Schwarz addiert werden.<br />

Farb-Wirkung 17


RGB-Farbwürfel<br />

Ins Innere des Würfels<br />

RGB-Farbmischung per "Scheinwerfer"<br />

Bei Grafikkarten und bei der Farbdefinition für WWW-Anwendungen wird der reelle Zahlenbereich<br />

0.0 - 1.0 auf den Wertebereich 0 - 255 umgesetzt. Durch die 256 Werte pro Farbkanal bei drei<br />

Kanälen können so 16.7 Mio. Farben, d. h. Truecolor, festgelegt werden:<br />

Das RGB-Modell ist wichtig bei der Farbdarstellung auf Monitoren. Bei Farbbildschirmen werden<br />

drei Phosphorarten auf der Mattscheibe aufgebracht, die von drei unabhängigen Elektronenkanonen<br />

angesteuert werden und das in drei Teilbilder (RGB) zerlegte Farbbild erzeugen.<br />

Daraus ergibt sich die besondere Bedeutung des RGB-Modells: alle anderen Farbbeschreibungen<br />

müssen vor der Farbausgabe in den äquivalenten Punkt des RGB-Würfels umgerechnet<br />

werden.Benutzen zwei Farbbildschirme Kathodenstrahlröhren mit verschiedenem Phosphor, so<br />

ergeben sich auch unterschiedliche Farbskalen. Man kann jedoch durch eine Transformationsrechnung<br />

die auf einer Kathodenstrahlröhre spezifizierte Farbe auf die Farbskala der anderen Röhre abstimmen.<br />

Das CMY-Modell<br />

<strong>Webdesign</strong><br />

Die subtraktive Farbmischung bedient sich der Farben Cyan, Magenta und Gelb (Yellow). Eine<br />

Mischung dieser drei Komponenten ergibt in der Theorie Schwarz, in der Praxis ein sehr dunkles<br />

Braun. Durch Zugabe von Schwarz (auch Tiefe genannt) enthält man auch im Bereich der unbunten<br />

Farben (Grau, Schwarz, Weiß) eine gute Reproduktionsqualität. Dieses Modell wird allgemein CMYK<br />

genannt. Bei der Darstellung der Farben in einem kartesischen Koordinatensystem wie beim<br />

RGB-Modell liegt nun Weiß im Ursprung und nicht mehr Schwarz. Farben werden beschrieben durch<br />

die von der Farbe Weiß abgezogenen Anteile der Grundfarben und nicht mehr durch deren Addition<br />

zur Farbe Schwarz.<br />

Das CMY- oder das CMYK-Modell wird zur Farbausgabe auf Druckern verwendet, es entspricht dem<br />

physikalischen Vorgang der Reflexion weißen Lichts. Die beim Dreifarbendruck auf das Papier<br />

gebrachte Farbe sorgt dafür, daß bestimmte Farbanteile des Weißen Lichts ausgefiltert und somit nicht<br />

mehr reflektiert werden (s.Abbildung). So verhindert zum Beispiel die auf das Papier aufgetragenen<br />

Farbe Cyan, daß rotes Licht von der Oberfläche absorbiert wird. Reflektiert wird somit noch der Grünund<br />

Blau-Anteil des Lichts. Die Druckfarbe Magenta absorbiert Grün und gelbe Druckfarbe absorbiert<br />

Blau. Werden Cyan und Gelb nun übereinander auf das Papier aufgetragen, so wird nur der<br />

Farbmodelle 18


Grün-Anteil des anstrahlenden Lichts reflektiert. Werden alle drei Farben auf das Papier aufgetragen,<br />

dann werden Rot, Grün und Blau absorbiert und man erhält so die Farbe Schwarz.<br />

Die Umrechnung zwischen RGB- und CMY-Modell erfolgt nach folgenden Formeln:<br />

• [C,M,Y] = [1,1,1] - [R,G,B]<br />

• [R,G,B] = [1,1,1] - [C,M,Y]<br />

Beim CMYK-Modell erfolgt die Umrechnung nach folgenden Formeln:<br />

• K = min(C,M,Y)<br />

• C = C - K<br />

• M = M - K<br />

• Y = Y - K<br />

Luminanz und Chrominanz<br />

<strong>Webdesign</strong><br />

Hier sollen einige grundlegende Prinzipien der visuellen Empfindung des Menschen erklärt werden.<br />

Licht sind die durch das Auge vermittelten Empfindungen und elektromagnetischen Schwingungen<br />

einer hestimmten Wellenlänge. Jeder Farbe entspricht eine andere Wellenlänge. Nicht jede<br />

elektromagnetische Schwingung ist sichtbar. Die für den Menschen sichtbaren Schwingungen bzw.<br />

Wellenlängen liegen im Bereich von etwa 250 nm bis 780 nm.<br />

Eine aus nur einer Wellenlänge bestehende Lichtquelle ist eine monochromatische Quelle. Nehmen<br />

wir als Beispiel an, darf die Wellenlänge dieser monochromatischen Quelle £ ist. Diese Quelle hat<br />

eine Energie, die auch Intensität genannt wird. Wir nennen diese Intensität C. In Wirklichkeit sind nur<br />

wenige Quellen monochromatisch. Die meisten Quellen setzen sich aus einem Bereich von<br />

Wellenlängen mit je einer eigenen Intensität zusammen. Das ist die spektrale Verteilung der<br />

Lichtquelle, die durch die Funktion C(£) dargestellt wird.<br />

Im sichtbaren Spektrum kann das menschliche Auge zwischen verschiedenen Wellenlängen<br />

monochromatischen Lichts unterscheiden. jede Wellenlänge erzeugt einen anderen Eindruck, die<br />

Farbempfindung. Die Art, wie das menschliche Auge auf Licht reagiert, weist einige interessante<br />

Aspekte auf, z. B., daß zwei verschiedene Wellenlängen nicht als verschiedene Farben erscheinen.<br />

Zwei monochromatische Quellen mit genau der gleichen Intensität erwecken einen anderen Eindruck<br />

von 'Leuchtdichte'. Das menschliche Auge reagiert auf bestimmte Wellenlängen empfindlicher als auf<br />

Farbmodelle 19


andere. Mit anderen Worten, das Auge reagiert auf manche Farben empfindlicher als auf andere.<br />

Unser Auge reagiert empfindlicher auf Gelb oder Gelbgrün als etwa auf Rot oder violett.<br />

Die Reaktion des menschlichen Auges V(£) entspricht jeder Wellenlänge £. Das ist die spektrale<br />

Reaktion des menschlichen Sehvermögens. Die Luminanz einer Lichtquelle oder eines beleuchteten<br />

Gegenstands ist kein physisches Merkmal der Quelle oder des Gegenstands, sondern eine<br />

wahrgenommene Empfindung des menschlichen Betrachters. Luminanz ist ein Produkt der spektralen<br />

Verteilung von Energie durch spektrale Reaktion der menschlichen Sicht.<br />

L = f * C(£) * V(£) * d£<br />

<strong>Webdesign</strong><br />

Luminanz ist also ein Maß der allgemeinen Reaktion des Auges auf alle in einer Quelle oder einem<br />

Gegenstand enthaltenen Wellenlängen.<br />

Luminanz und Farbunterschied im analogen Fernsehen<br />

Die drei Signale Rot, Grün und Blau können in drei andere Signale umgewandelt weren: in die<br />

Information der Luminanz (, d. h. die Leuchtdichte bzw. die Lichtintensität) und zwei weitere<br />

Farbsignale. Das Prinzip der Umwandlung der RGB-Signale in Luminanz- und Farbsignale ist älter als<br />

das Farbfernsehen. Dafür gibt es zwei Gründe. Erstens ist dadurch eine Abwärtskompatibilität<br />

möglich, so daß alte Schwarzweiß-Fernsehgeräte unterstützt werden. Das ist die Aufgabe des<br />

Luminanzsignals. Da das menschliche Sehvermögen weniger stark auf Farbe als auf Luminanz<br />

reagiert, kann das Farbsignal gegebenenfalls mit geringerer Genauigkeit übertragen oder dargestellt<br />

werden.<br />

In der Fernsehtechnik wird das Luminanzsignal Y-Signal genannt. Die zwei Chrominanzsignale<br />

werden aus den Farbunterschieden herechnet. Ein Farbunterschiedssignal für Rot, Grün und Blau<br />

entsteht durch Suhtrahieren des Luminanzsignals vom Farbsignal. ist beispielsweise R das Farbsignal<br />

Rot, ist das Farbunterschiedssignal von Rot (R - Y). In der Praxis genügen zwei<br />

Farbunterschiedssignale, wenn Luminanz verfügbar ist. Farbunterschiedssignale werden nicht so<br />

übertragen wie sie sind, sondern vor der bertragung in zwei Signale - die Cbrominanzsignale -<br />

umgewandelt. Die Umwandlung ist linear. Jede Femsehnorm definiert ihre eigene<br />

Umwandlungsmethode:<br />

Die NTSC-Norm bezeichnet die Luminanz als Y-Komponente und die zwei Chrominanzsignale als Iund<br />

Q-Komponenten. I und Q bilden zusammen die Farbton- und Sättigungsaspekte (Chrominanz).<br />

Sie werden wie folgt herechnet:<br />

Y = 0,30*R + 0,59*G + 0,11*B<br />

(1) I = 0,74*(R - Y) - 0,27*(B - Y) = 0,60*R - 0,28*G - 0,32*B<br />

Q = 0,48*(R - Y) + 0,41*(B - Y) = 0,2l*R - 0,52*G + 0,31*B<br />

Farbmodelle 20


Die PAL-Norm bezeichnet die Luminanz Y und zwei Chrominanzsignale mit U und V:<br />

Y = 0,30*R + 0,59*G + 0,11*B<br />

(2) U = 0,493*(B - Y) = -0,15*R - 0,29*G + 0,44*B<br />

V = 0,877*(R - Y) = 0,62*R - 0,52*G - 0,10*B<br />

Die folgenden Modelle basieren auf Luminanz und Chrominanz.<br />

Das YIQ-Modell<br />

Das YIQ-Modell wird - wie oben beschrieben - in der Fernsehtechnik verwendet und sorgt dort für die<br />

Abwärtskompatibilität von Farb- zu S/W-Fernsehen. Die Y-Komponente gibt die Luminanz wieder.<br />

Ein S/W-Fernseher zeigt nur diese Komponente an. Die Chrominanz, die Farbigkeit, ist in den<br />

Komponenten I und Q codiert. Die Umrechnung von RGB-nach YIQ-Werten erfolgt nach der Formel<br />

(1) oben.<br />

Dabei ist I in etwa die Rot-Orange-Achse und Q annähern orthogonal zu I. Das menschliche Auge ist<br />

am Empfindlichsten für Y, danach für I und schließlich für Q.<br />

Das YCbCr-Farbmodell<br />

Für das PAL-System wurde ein leicht abweichendes Modell entwickelt, das dann zum<br />

CCIR-601-Standard für digitale Videoaufzeichnung wurde. Die Umrechnung lautet:<br />

• Y = 0,299*R + 0,587*G + 0,114*B<br />

• Cb = B - Y<br />

• Cr = R - Y<br />

Mehr hierzu finden Sie weiter unten beim JPEG-Verfahren.<br />

Daraus leitet sich bei den meisten Bildbearbeitungsprogrammen das HSB-Modell ab. Es entspricht<br />

von allen drei Modellen unserer verbalen Farbbeschreibung am meisten. Beschreibungen wie ein<br />

kräftiges, helles Gelb lassen sich sofort umsetzen. Die Initialen stehen für Hue (Farbton), Saturation<br />

(Sättigung) und Brightness (Helligkeit). Der Farbton beeinhaltet die reine Farbinformation, die<br />

Sättigung das Verhätlniss von Stärke der reinen Farbe und den unbunten Anteilen. Die Helligkeit<br />

entspricht der Helligkeit von 1% - 100%. 0% stellt immer Schwarz dar, 100% immer Weiß.<br />

Zusammenfassung<br />

• Farbbilder werden als Werte-Tripel dargestellt. Man kann durch die Wahl des Wertebereich<br />

unterschidliche Farbtiefe speichern. Für einfache Icons genügen 2 bis 32 Farben. Bei 8 Bit<br />

Farbtiefe wird jedes Pixel in einem Byte gespeichert und bei 24 Bit Farbtiefe werden 3 Bytes<br />

benötigt.<br />

• RGB ist ein additives Farbmodell für selbstleuchtende Geräte Monitor), CMY ist ein<br />

subtraktives Modell für Drucker.<br />

• Bei Video verwendet man YIQ (und YUV, das nicht besprochen wurde). Y enthält die<br />

Helligkeitsinfo (S/W-Bild), I und Q die Farbinfo (Chrominanz).<br />

• Neben diesen Hardware-Modellen gibt es noch andere, die zum Teil auch in<br />

Bildbearbeitungsprogrammen verwendet werden (z. B. HSB).<br />

Gradation<br />

<strong>Webdesign</strong><br />

Farbmodelle 21


Bei der professionellen Bildbearbeitung<br />

werden fast alls Änderungen an Bildern<br />

über sogenannte Gradationskurven<br />

gemacht. Diese Bildberabeitungen sind<br />

nötig, um Abbildungen auf die<br />

Besonderheiten spezieller Ausgabegeräte<br />

einzustellen oder um besondere Effekte<br />

zu erzielen.<br />

Die Gradationskurve ist die Visualisierung des Verhältnisses von Eingabe- zu Ausgabewerten in<br />

einem Bereich von 0% bis 100%. Diese Kurve repräsentiert alle Farben eines Bildes, jede<br />

Veränderung ist dort ablesbar. Die Beeinflussung der Farbbereiche eines Bildes durch die<br />

Gradationskurve verdeutlicht die nebenstehende Abbildung.<br />

Gamma-Korrektur<br />

Will man Intensitätsstufen auf einem Bildschirm so darstellen, daß sie gleichmäßig und ohne<br />

sichtbaren Stufen verteilt sind, so muß man spezielle Eigenschaften des Auges berücksichtigen. Wenn<br />

man z. B. 256 Intensitätsstufen linear auf die Helligkeitswerte des Bildschirms überträgt, so ergibt sich<br />

eine nichtlineare Stufung, die deutlich sichtbar ist. Das menschliche Auge nimmt keine absoluten<br />

Intensitätswerte wahr, sondern Quotienten von Intensitätsstufen. So wird zum Beispiel zwischen den<br />

Intensitätsstufen 0.2 und 0.22 der gleiche Unterschied wie zwischen 0.6 und 0.66 wahrgenommen. Die<br />

Intensitätsstufen einer Ausgabe müssen daher nichtlinear, genaugenommen logarithmisch auf die<br />

Helligkeitsstufen des Bildschirms abgebildet werden. Für 256 Stufen ergibt sich dabei folgendes:<br />

• I0 sei die kleinstmögliche Helligkeit und der Wert 1.0 die maximale Helligkeit.<br />

• I0 = I0<br />

• I1 = r * I0<br />

• I2 = r * I1 = r2 * I0<br />

• ...<br />

• I255 = r255*I0 = 1<br />

Der Wert für I0 hängt von der verwendeten Bildröhre ab und liegt normalerweise zwischen 1/200 und<br />

1/40 des maximal erreichbaren Wertes. Das Verhältnis zwischen maximaler und minimaler Helligkeit<br />

nennt man den Dynamikbereich einer Bildröhre.<br />

Für I0 = 0.02 errechnet sich r = 1.015. Um die Darstellung einer Graustufentreppe (also Werte<br />

zwischen 0 .. 1) ohne Stufen erscheinen lassen ist ein Wert r < 1.01 nötig, dann kann das Auge die<br />

einzelnen Helligkeitssprünge nicht mehr voneinander unterscheiden.<br />

Nun werden die gewünschten Helligkeitswerte durch den Bildschirm auch nichtlinear verändert, es ist<br />

also eine weitere Korrektur notwendig, um eine korrekte Abbildung zu erreichen.<br />

Die Lichtintensität I die durch einen Elektronenstrahl durch den Phosphor des Bildschirms umgesetzt<br />

wird, hängt von der Zahl der Elektronen N wie folgt ab:<br />

I = k * N y<br />

<strong>Webdesign</strong><br />

Gradation 22


Dabei sind k und y Konstanten die vom Bildschirm abhängig sind. y ist der Wert Gamma und liegt bei<br />

den meisten Bildschirmen zwischen 2.2 und 2.5. Eine Umrechnung der gewünschten Helligkeit auf<br />

einen Eingabewert basierend auf dieser Formel nennt man auch Gammakorrektur.<br />

Mit Hilfe einer Tabelle ist es nun möglich, die gesamte Helligkeits-Korrektur durchzuführen. Bei<br />

manchen Monitoren ist es auch möglich, die Korrekturtabelle im Monitor abzulegen, üblicherweise<br />

wird jedoch die Korrektur in der Grafikkarte durchgeführt. Natürlich können auch die<br />

Bildinformationen selbst bereits korrigiert werden. Die Korrektur für die Helligkeitsabbildung kann<br />

vorab erfolgen. Insbesondere sind auch Korrekturen für gescannte Bilder oder Videos nötig, da diese<br />

selbst wieder eine andere Helligkeitsumsetzung aufweisen.<br />

Ähnliche Korrekturen sind auch für Filmbelichter, Drucker etc. notwendig, will man Bilder mit<br />

Graustufen korrekt darstellen. Für eine Korrektur an Farbildern kann es ggf. nötig sein die Korrektur<br />

für alle drei Farbkomponenten getrennt durchzuführen.<br />

Die folgende Tabelle zeigt typische Werten der Dynamik 1/I0 und der Anzahl der benötigten<br />

Intensitätsstufen. Die Zahl der möglichen Intensitätsstufen erhält man aufgrund des Dynamik-Bereichs<br />

mit der Formel<br />

n = log(1.01(1/I0))<br />

Technik Dynamik Intensitäts-<br />

Stufen<br />

Bildschirm 50 - 200 400 - 530<br />

Photo-Druck 100 465<br />

Dia 1000 700<br />

S/W-Druck auf<br />

gestrichenem Papier<br />

Farb-Druck auf<br />

gestrichenem Papier<br />

100 465<br />

50 500<br />

Zeitung 10 234<br />

Dithering<br />

<strong>Webdesign</strong><br />

Beachten Sie bitte auch, daß nicht alle Grafikkarten Echtfarben darstellen können. Bei z. B. VGA oder<br />

SVGA, werden die nicht direkt darstellbaren Farben dann entweder in dem nächstgelegenen<br />

anzeigbaren Farbton umgesetzt, wobei zu nah beieinander liegende Farben gleich erscheinen können,<br />

oder diese Farben werden "gedithert".<br />

Beim Dithering wird ein Farbton durch Kombination vorhandener Farben erzeugt. Die Kombination<br />

besteht darin, daß ein Pixelmuster erzeugt wird, welches aus einer gewissen Entfernung betrachtet<br />

Gamma-Korrektur 23


dem gewünschten Farbton ähnelt. Bei naher Betrachtung sieht man freilich die Pixel. Bei Text kann<br />

dieses Raster aber schnell zur Unleserlichkeit führen.<br />

Möchten Sie sicherstellen, daß ihr Dokument auf nahezu allen Geräten angezeigt werden kann, so<br />

beschränken Sie die Farbe. Es ist sicher heute nicht mehr nötig, sich auf die 16 Grundfarben zu<br />

beschränken. Aber bei der Farbdefinition von Text- umd Hintergrundfarbe ist es durchaus günstig,<br />

sich auf 256 Farben zurückzuziehen.<br />

Betrachten wir ein Beispiel zum Dithering. Als Ausgangsbild verwenden wir ein Bild mit<br />

Farbverläfen:<br />

Truecolor-Bild<br />

<strong>Webdesign</strong><br />

Betrachten wir nun einige Dithermöglichkeiten:<br />

Dithering: optimierte Farbtabelle mit Fehlerdiffusion<br />

Dithering 24


Dithering: gleichmäßige Farbtabelle<br />

<strong>Webdesign</strong><br />

Dithering: gleichmäßige Farbtabelle mit Fehlerdiffusion<br />

Dithering: Standard-VGA-Tabelle mit Fehlerdiffusion<br />

Sie sehen also, daß auch auf nicht-Truecolor-Systemen erträgliche Bilder produziert werden können.<br />

Ein günstiges Vorgehen ist, auch das Dithern dem Browser des Betrachters zu überlassen, d. h.<br />

Echtfarbenbilder auch als Echtfarbenbilder zu übertragen. Dennoch sollte man sich als Autor klar sein,<br />

daß ein Bild bei jedem Betrachter gegebenenfalls verändert erscheint. Man kann sich also nicht darauf<br />

Betrachten wir nun einige Dithermöglichkeiten: 25


verlassen, daß der Betrachter jedes Detail sehen kann.<br />

Das Beispiel zeigt, daß Dithering auch Übergänge erzeugen kann (Fehlerdiffusion). Dabei wird<br />

versucht, sich der wirklichen Übergang von einer Farbe über Zwischentöne zur anderen durch ein<br />

Muster verfügbarer Farben anzunähern. Stellt man sich jedoch eine Zeile Text vor, so kann dieser<br />

Effekt zur oben bereits erwähnten Unleserlichkeit führen.<br />

Bildkompressionsverfahren<br />

Bilder mit hoher Auflösung im Computer zu speichern kostet Platz. Bei einer Auflösung von 640 x<br />

480 Bildpunkten und 16 Millionen Farben (24 Bit pro Bildpunkt), benötigt man für ein Bild 921600<br />

Bytes, also fast 1 MByte, Speicherplatz. Bilddateien sind also äußerst unhandlich, besonders dann,<br />

wenn ein größeres Bildarchiv angelegt oder ein Farbbild via Modem und Telefonleitung oder per<br />

ISDN übertragen werden soll. Daher versucht man Bilder komprimiert abzuspeichern.<br />

Erste Schritte zur Verringerung der Dateigröße unternehmen Grafikformate, die intern<br />

Kompressionsmethoden wie Lauflängencodierung, LZW- oder Huffman-Codierung verwenden, wie<br />

z.B. GIF, PCX oder TIFF. Allerdings überschreiten diese Methoden selbst in ihrer modernsten Form<br />

selten den Kompressionsfaktor drei. Jedoch komprimieren diese Verfahren ohne Verluste und das<br />

Original läßt sich bis aufs letzte Bit wieder herstellen. Bei der Reduktion von Bilddaten kann man<br />

sogenannte 'Kompressionsverfahren' verwenden, um die Redundanz in der Bildinformation zu<br />

beseitigen. Dabei unterscheidet man zwischen verlustfreier Kompression, bei der das unrsprüngliche<br />

Bild wieder originalgetreu hergestellt wird und verlustbehafteter Kompression, wo bei der<br />

Kompression ein mehr oder minder großer Teil der Bildinformation verloren geht.<br />

Ein einfaches Kompressionsverfahren ist die Run-Length-Codierung (RLE). Dabei verfährt man wie<br />

folgt: Das Bild wird z. B. Zeile für Zeile abgespeichert. Wenn mehrere aufeinanderfolgende<br />

Bildpunkte die gleiche Farbe haben, so speichert man einen Zähler ab, der angibt, wie oft diese Farbe<br />

folgt. Der Zähler ist eine Bildpunktfarbe, die nicht vorkommt und über einen Sonderfall abgehandelt<br />

wird. Dieses Verfahren eignet sich am Besten für Bilder die eine Palette verwenden und keine<br />

Farbverläufe (z.B. bei Fotos) oder komplizierte Muster enthalten. Bilder in Echtfarben, z.B. von<br />

Fotoaufnahmen eignen sich für dieses Verfahren nicht sehr gut. So lassen sich umgekehrt z.B.<br />

Grafiken, die farbige Flächen enthalten sehr gut mit dem Verfahren abspeichern.<br />

Wenn man komplexere Codierungen z. B. LZW (GIF) verwendet, lassen sich noch bessere<br />

Kompressionsfaktoren erreichen, da dann auch sich wiederholende Muster erkannt werden. Auch hier<br />

gilt, daß Echtfarbenbilder nur schlecht komprimiert werden können.<br />

Verlustfreie Kompression<br />

Nach dem Satz von Shannon ist die maximale Entropie einer Informationsquelle S definiert durch<br />

H(S) = Summe(Pi * ld(1/Pi))<br />

wobei Pi die Wahrscheinlichkeit des Auftretens vom Symbol Si ist. ld(1/Pi) ist der Logarithmus zur<br />

Basis 2 von 1/Pi und gibt an, wieviele Bits benötigt werden, um das Symbol Si zu codieren. Dazu ein<br />

Beispiel:<br />

Für ein Bild mit gleichverteilten Graustufenwerten gilt pi = 1/256. Es werden also 8 Bit benötigt, um<br />

jede Graustufe zu codieren. Die Entropie des Bildes ist 8.<br />

Die folgenden Algorithmen können mit einem einfachen Beispiel erläutert werden. Es sei die folgende<br />

Häfigkeitsverteilung gegeben:<br />

Symbol A B C D E<br />

---------------------------------<br />

Anzahl 15 7 6 6 5<br />

<strong>Webdesign</strong><br />

Bildkompressionsverfahren 26


Ein erster Ansatz<br />

Wenn man einen Code mit fester Wortlänge verwendet, benötigt man 3 bit pro Symbol. Für die oben<br />

angegeben Anzahlen gibt das<br />

(15 + 7 + 6 + 6 + 5)*3 = 39*3 = 117 bit<br />

Es wird nun versucht, für die häufigsten Symbole einen kurzen, für die seltenen Modelle einen<br />

längeren Code zu finden. Dabei muß auf jeden Fall die Fano-Bedingung erfüt sein: Kein Codewort<br />

eines Codes mit variabler Wortlänge darf Anfang eines anderen Codewortes sein.<br />

A 0<br />

B 10<br />

C 11<br />

D 110<br />

E 111<br />

Nun benötigt man nur noch<br />

15*1 + 7*2 + 6*2 + 6*3 + 5*3 = 15 + 14 + 12 + 18 + 15 = 74 bit<br />

Mit zunehmender Zahl von Symbolen würde bei diesem Ansatz die Länge der Codeworte rasch<br />

steigen. Deshalb werden in der Praxis andere Algorithmen verwendet.<br />

Der Shannon-Fano-Algorithmus<br />

Der Algorithmus hat einen Top-Down-Ansatz:<br />

1. Sortiere die Symbole nach ihrer Auftretenshäufigkeit, z. B. ABCDE<br />

2. Teile die Folge rekursiv in jeweils zwei Teile, wobei in jeder Hälfte die Summe der Anzahlen<br />

etwa gleich sein sollte. Linke Zweige erhalten die '0' und rechte Zweige die '1'.<br />

Das sieht für unser Beispiel dann so aus:<br />

/\<br />

0/ \1<br />

/ \<br />

AB CDE<br />

/\<br />

0/ \1<br />

/ \<br />

/\ 0/\1<br />

0/ \1 / \<br />

A B C DE<br />

/\<br />

0/ \1<br />

/ \<br />

/\ 0/\1<br />

0/ \1 / \<br />

A B C /\<br />

0/ \1<br />

D E<br />

<strong>Webdesign</strong><br />

Verlustfreie Kompression 27


Es ergibt sich somit folgende Codierung:<br />

Symbol Anzahl ld(1/p) Code Anzahl Bits<br />

A 15 1.38 00 30<br />

B 7 2.48 01 14<br />

C 6 2.70 10 12<br />

D 6 2.70 110 18<br />

E 5 2.96 111 15<br />

Huffman-Codierung<br />

Dieser Algorithmus verfolgt einen Bottom-Up-Ansatz:<br />

1. Init: Trage alle Knoten in eine OPEN-Liste ein, immer sortiert. Z. B: ABCDE.<br />

2. Wiederhole, bis die OPEN-Liste nur noch einen Knoten enthält:<br />

1. Nimm die beiden Knoten mit der geringsten Häufigkeit (bzw. Wahrscheinlichkeit) aus<br />

der OPEN-Liste und erzeuge einen Eltern-Knoten für sie.<br />

2. Weise dem neuen Knoten die Summe der Häufigkeiten (bzw. Wahrscheinlichkeiten)<br />

seiner beiden Kinder zu und trage ihn in der OPEN-Liste ein.<br />

3. Weise den beiden Zweigen zu den Kind-Knoten die Werte '0' und '1' zu und lösche sie<br />

aus der OPEN-Liste.<br />

P4(39)<br />

/\<br />

0/ \1<br />

/ \<br />

/ \<br />

/ \<br />

A(15) \P3(24)<br />

/\<br />

0/ \1<br />

/ \<br />

P2(13)/ \P1(11)<br />

/| /\<br />

0/ |1 0/ \1<br />

/ | / \<br />

/ | / \<br />

B(7) C(6) D(6) E(5)<br />

Es ergibt sich somit folgende Codierung:<br />

Symbol Anzahl ld/1/p) Code Anzahl Bits<br />

A 15 1.38 0 15<br />

B 7 2.48 100 21<br />

C 6 2.70 101 18<br />

D 6 2.70 110 18<br />

E 5 2.96 111 15<br />

Für beide Algorithmen gilt:<br />

<strong>Webdesign</strong><br />

Verlustfreie Kompression 28


• Die Decodierung für die beiden Algorithmen ist einfach, sofern die Codierungstabelle vor den<br />

Daten übertragen bzw. mit den Daten gespeichert wird.<br />

• Kein Codewort ist Beginn eines anderen, die Codierung ist eindeutig (Fano-Bedingung) und<br />

einfach zu decodieren (alle Codesymbole sind Blattknoten des Codebaums).<br />

• Wenn Statistiken über die Daten existieren, liefert die Huffman-Codierung sehr kompakte<br />

Daten.<br />

• Wird eine Standard-Codetabelle verwendet ist die Kompressionsrate geringer, aber es wird<br />

immer noch eine brauchbare Kompression erzielt (z. B. bei Fax, Gruppe 3).<br />

Verlustbehaftete Kompression<br />

<strong>Webdesign</strong><br />

Verfahren wie LZW arbeiten verlustfrei, das bedeutet, man erhält nach der Dekompression exakt das<br />

gleiche Bild wie vor der Kompression. Es gibt aber auch verlustbehaftete Verfahren, die dann stärkere<br />

Kompressionsfaktoren erlauben. Ein Beispiel dafür ist das JPEG-Verfahren, benannt nach der 'Joint<br />

Photographic Expert Group'.<br />

Man erkannte schnell, daß die Bildinformation nicht immer 1:1 erhalten bleiben muß, damit das<br />

rekonstruierte Bild sich auf den ersten Blick nicht vom Original unterscheidet, da schon das Scannen<br />

Farbübergänge in ein Raster preßt (quantisieren). Dies führte zur Entwicklung eines leistungsfähigeren<br />

Verfahrens namens JPEG durch die gleichnamige ISO/CCITT Kommission. Der Begriff Verlust ist<br />

hier etwas irreführend: es geht nicht hauptsächlich Bildqualität verloren, sondern Information, die bis<br />

zu einem gewissen Grad redundant ist. So sind mit JPEG Kompressionsraten von 20:1 möglich, ohne<br />

daß man große Unterschiede zum Originalbild erkennen kann. Das Bild wird dazu in Quadrate von<br />

acht Pixeln Kantenlänge zerlegt und dann mit mathematischen Operationen (Cosinus-Transformation)<br />

komprimiert. Der Kompressionfaktor beeinflußt die Größe der Datei und auch die Qualität der<br />

Wiedergabe. Bei zu hoher Kompression werden die 8 x 8-Quadrate sogar sichtbar.<br />

JPEG bezeichnet also kein Dateiformat, sondern eine ganze Familie von Algorithmen zur<br />

Kompression digitalisierter Standbilder in Echtfarbqualität. Diese Sammlung unterschiedlichster<br />

Verfahren wurde 1993 unter der Bezeichnung ISO 10918 als Standard festgeschrieben.<br />

Aus diesem Werkzeugkasten können sich Entwickler je nach gewünschtem Anwendungsgebiet die<br />

benötigten Teile herausnehmen und in ihren Hard- und Softwareprodukten implementieren. Dabei<br />

kann der Anwender die Kompressionsparameter seinen Anforderungen entsprechend angeben; dabei<br />

sinkt natürlich die Qualität des komprimierten Bildes mit steigender Kompressionsrate. So können<br />

extrem kleine Bilddateien erzeugt werden, z.B. für Indexarchive von Bilddatenbanken.<br />

Die verlustbehafteten JPEG-Prozesse sind auf fotografische Aufnahmen mit fließenden<br />

Farbübergängen hin optimiert. Für andere Arten von Bildern sind sie weniger geeignet z. B. für<br />

Bilddaten mit harten Kontrasten wie Cartoons, Liniengrafiken oder Texte, die meist große Farbflächen<br />

und abrupte Farbwechsel enthalten.<br />

Bei der Entwicklung des JPEG - Standards war es oberstes Ziel einheitliche Verfahren bereitzustellen,<br />

die möglichst alle Belange der Bilddatenkompression abdeckt. Dabei wurde auf folgende Aspekte<br />

besonderen Wert gelegt:<br />

• Verfahren zur Kompression ohne Datenverlust<br />

• Verfahren zur Kompression mit Datenverlust, allerdings mit einstellbarer Kompressionsrate<br />

• Algorithmen sollten eine vertretbare Komplexität aufweisen<br />

• Das Verfahren sollte für alle Arten von unbewegten Bilddaten anwendbar sein, also auch<br />

keine Beschränkung der Farbtiefe.<br />

Die verwendeten Algorithmen sollten sowohl in Software als auch in Hardware relativ schnell und<br />

einfach zu implementieren sein.<br />

Untersuchungen des JPEG-Gremiums haben ergeben, daß bei den verlustbehafteten<br />

Umformungsmethoden die 8 x 8 diskrete Kosinustransformation (DCT) die besten Ergebnisse liefert.<br />

Verlustbehaftete Kompression 29


Für die Operationen, die auf der DCT beruhen wurde ein Minimal-Algorithmus, der Baseline Codec<br />

festgelegt, auf den alle DCT-Modi aufbauen.<br />

Die Komprimierung mit dem JPEG Baseline Codec besteht im wesentlichen aus 5 Schritten:<br />

1. Konvertierung des Bildes in den YCbCr-Farbraum<br />

2. Diskrete Kosinustransformation (DCT)<br />

3. Quantisieren der DCT-Koeffizienten<br />

4. Codieren der Koeffizienten<br />

5. Kompression der Daten<br />

DerYCbCr-Farbraum<br />

<strong>Webdesign</strong><br />

Es gibt - wie weiter vorne erwähnt - aber auch Farbmodelle, die eine Farbe nicht durch die<br />

Grundfarben (RGB), sondern durch andere Eigenschaften ausdrücken. So zum Beispiel das<br />

Helligkeit-Farbigkeit-Modell. Hier sind die Kriterien die Grundhelligkeit der Farbe, die Farbe mit dem<br />

größten Anteil (Rot, Grün oder Blau) und die Sättigkeit der Farbe, z.B. pastell, stark, fast weiß, usw.<br />

Dieses Farbmodell beruht auf der Fähigkeit des Auges geringe Helligkeitsunterschiede besser zu<br />

erkennen als kleine Farbunterschiede. So ist ein grau auf schwarz geschriebener Text sehr gut zu<br />

lesen, ein blau auf rot geschriebener, bei gleicher Grundhelligkeit der Farben, allerdings sehr schlecht.<br />

Solche Farbmodelle nennt man Helligkeit-Farbigkeit-Modelle.<br />

Verlustbehaftete Kompression 30


Das YCbCr-Modell ist ein solches Helligkeit-Farbigkeit-Modell. Dabei wird ein RGB-Farbwert in<br />

eine Grundhelligkeit Y und zwei Komponenten Cb und Cr aufgeteilt, wobei Cb ein Maß für die<br />

Abweichung von der 'Mittelfarbe' Grau in Richtung Blau darstellt. Cr ist die entsprechende Maßzahl<br />

für Differenz zu Rot. Diese Darstellung verwendet die Besonderheit des Auges, für grünes Licht<br />

besonders empfindlich zu sein. Daher steckt die meiste Information in der Grundhelligkeit Y, und man<br />

braucht nur noch Abweichungen nach Rot und Blau darzustellen.<br />

Um nun Farbwerte in RGB-Darstellung in den YCbCr-Farbraum umzurechnen, benötigt man folgende<br />

Formel:<br />

Y = 0,2990*R + 0,5870*G + 0,1140*B<br />

Cb = -0,1687*R - 0,3313*G + 0,5000*B<br />

Cr = 0,5000*R - 0,4187*G - 0,0813*B<br />

Die Rücktransformation vom YcbCr-Farbraum in RGB-Werte geschieht wie folgt:<br />

R = 1,0*Y + 0,0 *Cb + 1,402 *Cr<br />

G = 1,0*Y - 0,34414*Cb - 0,71414*Cr<br />

B = 1,0*Y + 1,7720 *Cb + 0,0 *Cr<br />

Diskrete Kosinustransformation (DCT)<br />

<strong>Webdesign</strong><br />

Das menschliche Auge ist kein perfektes Organ. So kann es zum Beispiel weiche Farbübergänge viel<br />

schlechter auflösen als geringe Helligkeitsunterschiede. Dabei spricht man bei Farbunterschieden, die<br />

das Auge besser auflöst von niedrigen Ortsfrequenzen, bei schlechterer Auflösung von hohen<br />

Ortsfrequenzen. Die Analogie zu Frequenzen führt von dem räumlichen Auflösungsvermögen des<br />

Auges her. Bei bestimmten Farbunterschieden kann man mehr unterscheidbare Farbinformationen<br />

unterbringen (daher hohe Ortsfrequenz) als bei anderen Farbunterschieden. Die DCT nutzt nun diese<br />

Schwäche des menschlichen Auges aus, indem sie die hohen Ortsfrequenzen herausfiltert und diese<br />

schlechter oder auch gar nicht codiert. Zunächst werden die Eingangsdaten, die als vorzeichenlose<br />

Ganzzahlen vorliegen, in eine für die DCT geeignete Wellenform gebracht. Dazu subtrahiert man<br />

einfach von jedem Wert (2 hoch P-1), wobei P die verwendete Genauigkeit in Bits darstellt. Im<br />

Baseline Codec beträgt die Genauigkeit 8 Bit, so daß der neue Referentzpunt beim Wert 128 liegt.<br />

Dann werden die Bilddaten in Blöcken zu 8x8 Pixeln gerastert. Ein solcher Block wird nun als Vektor<br />

(aus 64 Pixelwerten) eines geeigneten Vektorraums interpretiert. Die DCT vollzieht nun einen<br />

Basiswechsel. F(u,v) ist der DCT-Koeffizient, f(i,j) der geshiftete Pixelwert.<br />

Als Basisvektoren werden aber nun 64 Blöcke zu 8x8 Pixeln verwendet, welche bezüglich des<br />

Vektorraums eine Orthonormalbasis bilden. Die Basisvektoren gewinnt man durch folgende Formel.<br />

Verlustbehaftete Kompression 31


Durch den Basiswechsel ergeben sich 64 eindeutige Koeffizienten, die den Anteil des jeweiligen<br />

Basisblocks an dem Bilddatenblock darstellen. Die Koeffizienten werden berechnet durch:<br />

Um diese Koeffizientendarstellung in ihre Ursprungsform zurückzutransformieren, benötigt man<br />

folgende Beziehung:<br />

wobei<br />

<strong>Webdesign</strong><br />

Das folgende Bild zeigt die 8 x 8 = 64 DCT-Basisfunktionen. Links oben ist F(0,0) (der DC-Anteil),<br />

rechts untern der höchste AC-Anteil.<br />

Bei dieser Codierung und Decodierung (Codec) treten schon ohne weitere Behandlung der<br />

Koeffizienten Verluste auf, da die benötigte Kosinus- bzw. Sinusfunktion nur in begrenzter<br />

Genauigkeit auf Rechnern dargestellt werden kann. Daraus folgt ebenso, daß dieses Verfahren nicht<br />

iterierbar ist. Wird also ein mittels DCT codiertes Bild decodiert und wieder codiert, bekommt man<br />

ein anderes Ergebnis, als bei der ersten Codierung. Der Vorteil der DCT wird bei Bildern mit<br />

kontinuierlichen Farbübergängen besonders deutlich: Da sich benachbarte Bildpunkte in der Regel<br />

kaum unterscheiden, werden in der Koeffizientendarstellung nur der DC-Koeffizient (das ist der<br />

Koeffizient dessen Basisvektor in beiden Richtungen die Frequenz Null hat) und einige<br />

niederfrequente AC-Koeffizienten (das sind die übrigen Koeffizienten) größere Werte annehmen. Die<br />

anderen sind fast Null oder meistens sogar gleich Null. Dies bedeutet, daß kleinere Zahlen codiert<br />

werden müssen, und dies hat bei geeigneter Darstellung schon einen Komprimierungseffekt.<br />

Wie man aus den Formeln erkennt, ist die Berechnung der Koeffizienten recht umfangreich. So<br />

benötigt man für einen 8 x 8-Block 63 Additionen und 64 Multiplikationen. Man kann das Problem<br />

durch Faktorisierung vereinfachen<br />

Verlustbehaftete Kompression 32


Die meisten Hardware- und Softwareimplementierungen von Coder und Decoder verwenden<br />

Ganzzahlarithmetik und approximieren die Koeffizienten. Die Multiplikationen reduzieren sich dann<br />

auf Schiebeoperationen. Der Weltrekord für die DCT lag 1989 bei 11 Multiplikationen und 29<br />

Additionen.<br />

Quantisierung<br />

<strong>Webdesign</strong><br />

Bei der Entwicklung des JPEG-Standards war es ein Ziel, die Kompressionsparameter frei wählbar zu<br />

machen. Dies wird durch die sogenannte Quantisierung erreicht. Die Quantisierung ist eine<br />

Abbildung, die mehrere benachbarte Werte auf einen neue n Wert abbildet, wobei die Koeffizienten<br />

durch einen Quantisierungsfaktor q(u,v) geteilt und auf den nächsten Integerwert gerundet werden.<br />

Folgende Gleichung wird dabei verwendet:<br />

Die Umkehrabbildung multipliziert dann einfach den quantisierten Wert mit dem<br />

Quantisierungsfaktor. Durch diese Hin- und Zurücktransformation entsteht ein Informationsverlust, da<br />

bei dieser Rückrechnung die quantisierten Werte nicht immer auf den originalen Wert zurückführen.<br />

Je größer dabei der Quantisierungsfaktor ist, desto größer ist auch der Informationsverlust. Dieser<br />

Informationsverlust kann durch geeignete Wahl der Quantifizierungsfaktoren so gering gehalten<br />

werden, daß er vom Auge kaum wahrgenommen werden kann. Kompressionsraten von < 1:10 sind<br />

hierbei leicht realisierbar, ohne daß beim rekonstruierten Bild große Unterschiede zum Original zu<br />

erkennen sind.<br />

Verlustbehaftete Kompression 33


Für die Quantisierung ohne sichtbaren Informationsverlust sind jeweils für Helligkeit und Farbigkeit<br />

optimierte Quantisierungstabellen entwickelt worden. Diese sind zu entnehmen. In diesen Tabellen<br />

werden für den DC-Koeffizienten und die niederfrequenten AC-Koeffizienten bessere (kleinere)<br />

Quantisierungsfaktoren verwendet als für die höheren Frequenzen. Man nutzt dabei die oben genannte<br />

Schwäche des menschlichen Auges aus.<br />

Tabelle der Quantisierungsfaktoren q(u,v) für die Luminanz<br />

16 11 10 16 24 40 51 61<br />

12 12 14 19 26 58 60 55<br />

14 13 16 24 40 57 69 56<br />

14 17 22 29 51 87 80 62<br />

18 22 37 56 68 109 103 77<br />

24 35 55 64 81 104 113 92<br />

49 64 78 87 103 121 120 101<br />

72 92 95 98 112 100 103 99<br />

Für die Chrominanz wird eine zweite, ähnliche Tabelle verwendet. Es lassen sich aber auch eigene<br />

Tabellen verwenden (die dann im Header der Bilddatei mitgegeben werden).<br />

Bei Implementierungen von JPEG kann man eine gewünschte Kompressionsrate (oder Bildqualität)<br />

als Parameter einstellen, bei der folgenden Kompression werden einfach die Quantisierungsfaktoren<br />

entsprechend skaliert.<br />

Codierung der Koeffizienten (Zig-zag-Scan)<br />

Die Codierung der quantisierten Koeffizienten erfolgt getrennt für DC- und AC-Koeffizienten. Aus<br />

den 8x8 Blöcken wird ein sequentieller (eindimensionaler) Bitstrom von 64 Integers erzeugt. Dabei ist<br />

der erste Wert der DC-Koeffizient, allerdings wird nicht der originale Wert, sondern, die Differenz<br />

zum DC-Koeffizienten im vorhergehenden Block codiert. Durch die Kohärenz der DC-Koeffienten<br />

ergeben sich auch hier wieder wesentlich kleinere Zahlen, als bei der Speicherung der absoluten<br />

Werte. Die 63 AC-Koeffizienten werden anhand einer Zick-Zack-Kurve in sequentielle Reihenfolge<br />

gebracht, wodurch eine Sortierung hin zu höheren Ortsfrequenzen entsteht. Da aber gerade die hohen<br />

Frequenzanteile oft sehr klein bzw. Null sind, entsteht eine für die weitere Kompression der Bilddaten<br />

günstige Reihenfolge.<br />

Kompression der Daten<br />

<strong>Webdesign</strong><br />

Die bisher beschriebenen Verfahren beinhalten noch keine explizite Kompression, sondern stellen nur<br />

eine, und bei starker Qunatisierung der DCT-Koeffizienten recht grobe Transformation der Bilddaten<br />

dar. Um die so erhaltenen Daten in einem möglichst kompakten Code abzuspeichern, stellt der<br />

JPEG-Standard mehrere effiziente Verfahren bereit. Diese sind im einzelnen:<br />

Verlustbehaftete Kompression 34


• Interne Ganzzahl-Darstellung mit variabler Länge (statt fester Länge)<br />

Der Zahl wird einfach ein Zähler fester Länge vorangestellt, der angibt, wie lang die<br />

nachfolgende Integer-Zahl ist.<br />

• Komprimierung durch Huffman-Algorithmus<br />

Siehe Kompressionsverfahren.<br />

• Arithmetisches Codieren<br />

Das arithmetische Codieren komprimiert zwar besser als das Huffman-Verfahren, hat jedoch<br />

den Nachteil mit verschiedenen Patenten belegt zu sein, so daß Lizenzgebühren für die<br />

Benutzung anfallen. Aus diesem Grund arbeiten viele Implementierungen mit dem<br />

Huffman-Verfahren.<br />

Vergleich JPEG-Codierter Bilder<br />

Das erste Bild ist ca. 28 KByte groß und mit Faktor 1:10 komprimiert.<br />

Das zweite Bild ist nur noch ca. 2,1 KByte groß, der Faktor ist 1:100.<br />

Darstellungsmodi<br />

<strong>Webdesign</strong><br />

• Sequential Mode:<br />

Die Bilddaten werden in einem Durchgang, von links oben nach rechts unten codiert. Besteht<br />

ein Bild aus mehreren Komponenten, werden diese nicht nacheinander, also Komponente für<br />

Komponente verschlüsselt, sondern die Komponenten werden überlappt behandelt. Durch<br />

diese überlappte Bearbeitung ist es müssen nur kleine Puffer bereitgehalten werden, da es<br />

möglich ist die Bilddaten sofort auszugeben, z.B. an parallel arbeitende Prozesse, ohne warten<br />

zu müssen bis alle Komponenten bearbeitet sind. Dieser Modus ist für die meisten<br />

Anwendungen anwendbar, liefert die besten Kompressionsraten und ist mit am einfachsten zu<br />

Verlustbehaftete Kompression 35


BMP<br />

implementieren.<br />

• Progressive Mode:<br />

Dieser Modus durchläuft das Bild in mehreren Durchgängen, von denen jeder nur einen Teil<br />

der Koeffizienten codiert. Hier bei gibt es wieder zwei grundlegende Arten: Zum einen<br />

können die Koeffizienten in Frequenzbändern zusammengefaßt und die niedrigen Frequenzen<br />

zuerst verschlüsselt werden, zum anderen werden die Koeffizienten mit immer besserer<br />

Genauigkeit übertragen werden. JPEG erlaubt aber auch diese Grundarten zu kombinieren, um<br />

so bessere Ergebnisse zu erzielen. Schaut man die Ergebnisse der einzelnen Durchgänge an,<br />

so ist das Bild zunächst unscharf, im Laufe der Übertragung wird es jedoch zunehmend<br />

schärfer. Dieser Mode könnte vor allem bei der Datenfernübertragung von Bildern eingesetzt<br />

werden. Man bekommt ziemlich schnell einen Überblick auf das übertragene Bild und kann<br />

die Übertragung abbrechen, wenn die Bildqualität ausreichend ist.<br />

• Hierarchical Mode:<br />

Dieser Modus ist eine andere Form des progressive mode. Der hierarchical mode verwendet<br />

eine Menge von Bilder mit immer gröberer Auflösung, die durch Filtern mit einem Tiefpaß<br />

und Mitteln von mehreren Pixelwerten erzeugt werden. Zunächst wird das Bild mit der<br />

kleinsten Auflösung codiert. Dieses dient wiederum als Basis für eine Vorhersage auf das Bild<br />

mit der nächstgrößeren Auflösung. Dieser Vorgang wird wiederholt bis die volle Auflösung<br />

erreicht ist. Hauptanwendungsgebiet dürften große Bilddatenbanken sein, die die niedrigeren<br />

Auflösungen für ihre Inhaltsverzeichnisse verwenden und nur bei Bedarf die höheren<br />

Auflösungen decodieren.<br />

Grafikformate<br />

Bezeichnungen Microsoft Windows Bitmap, BMP, DIB<br />

Farben 1-Bit (s/w), 4-Bit (16 Farben), 8-Bit (256 Farben), 24-Bit (16,7 Mio. Farben)<br />

Kompression normalerweise keine oder RLE<br />

Maximale Bildgröße 65536 x 65536 Pixel<br />

Das Format BMP wird von den meisten Graphikprogrammen unterstützt, die unter MS-Windows<br />

arbeiten. Auch die meisten Konvertierprogramme unterstützen BMP. Zur Zeit gibt es vier Versionen<br />

des BMP-Formats:<br />

• MS-Windows Version 1.x und 2.x<br />

• MS-Windows Version ab 3.x<br />

• OS/2 Version 1.x<br />

• OS/2 Version ab 2.x<br />

<strong>Webdesign</strong><br />

Hier wird beispielhaft nur die MS-Windows Version ab 3.x beschrieben. Eine BMP-Datei besteht aus<br />

vier Abschnitten:<br />

Grafikformate 36


GIF<br />

• Der Bitmap Header enthält die Datei-Signatur "BM", die Dateilänge in Byte und den Abstand<br />

(Offset) zwischen Dateianfang und Datenanfang in Byte.<br />

• Im Information Header finden sich Informationen zum Bild selbst, z. B. die Höhe und Breite<br />

des Bildes, die horizontale und vertikale Auflösung in Pixel pro Meter, der Typ der<br />

Komprimierung und die Anzahl der benutzten Farben.<br />

• Die Farbpalette definiert jede Farbe durch ihren Anteil an Rot, Grün und Blau.<br />

• Die Daten enthalten die zeilenweise Rasterinformation des Bildes. Ausgangspunkt ist die<br />

linke untere Ecke des Bildes. Bei Bilder mit 1-, 4- oder 8-Bit Farbinformation enthält der<br />

Pixelwert nicht direkt die Farbinformation, sondern einen Index auf die Farbpalette. Bei<br />

24-Bit Bildern entspricht der Pixelwert dem Farbwert, so daß die Farbpalette hier nicht<br />

benutzt wird. Die Daten können RLE-komprimiert sein. Dies ist aber nur selten der Fall.<br />

Bezeichnungen Graphics Interchange Format, GIF<br />

Farben 1- bis 8-Bit (s/w bis 256 Farben/Graustufen)<br />

Kompression LZW<br />

Maximale Bildgröße 65536 x 65536 Pixel<br />

Besonderheit<br />

<strong>Webdesign</strong><br />

Mehrere Bilder in einer Datei möglich --> 'animated GIF',<br />

'interlaced' GIF,<br />

transparenter Hintergrund<br />

GIF wurde von den Firmen UNISYS Corp. und CompuServe entwickelt. Ziel war eine minimale<br />

Dateigröße zum Austausch von Graphiken über Mailboxen. Da im Mikrocomputerbereich für jede<br />

gängige Hardware (Amiga, Atari, IBM-kompatible, Macintosh) Programme existieren, die<br />

GIF-Grafiken verarbeiten können, ist es vor allem als Austauschformat über Hardwaregrenzen hinweg<br />

von Bedeutung. Eine GIF-Datei kann mehrere Bilder enthalten, was z. B. Interlacing ermöglicht. Im<br />

sequentiellen Modus wird das Bild zeilenweise von links oben nach rechts unten codiert und<br />

ausgegeben. Unter 'Interlacing' versteht man eine Abwandlung des Bildaufbaus bei der Wiedergabe.<br />

Es erscheint zunächst ein recht grobes Bild, das dann schrittweise immer schärfer wird. So kann man<br />

sich schon recht schnell einen Eindruck verschaffen. Dazu wird der Bildaufbau in vier Durchgänge<br />

aufgeteilt. Im ersten Durchgang wird ausgehend von der Zeile 0 jede achte Zeile ausgegeben, also die<br />

Zeilen 0, 8, 16 usw. Im zweiten Durchgang wird ausgehend von Zeile 4 jede achte Zeile ausgegeben,<br />

also 4, 12, 20 usw. Im dritten Durchgang folgt ausgehend von Zeile 2 jede vierte Zeile, also 2, 6, 10<br />

usw. Durchgang vier vervollständigt das Bild ausgehend von Zeile 1 mit jeder zweiten Zeile, also 1, 3,<br />

5 usw.<br />

Des weiteren kann man eine Farbe des Bildes als 'Hintergrundfarbe' definieren. Diese Farbe (im linken<br />

Bild hellblau) wird bei der Wiedergabe dann durch die Farbe des Hintergrundes ersetzt (rechtes Bild):<br />

BMP 37


Zur Zeit gibt es zwei Versionen des GIF-Formats:<br />

• GIF87a<br />

• GIF89a<br />

Hier wird die Version GIF87a beschrieben. Für die Version GIF89a (eine Erweiterung von GIF87a)<br />

wird auf die obengenannte Literatur verwiesen. Diese Version ist in der Lage, mit mehreren Bildern in<br />

einer Datei eine Animation ablaufen zu lassen (siehe später).<br />

Eine GIF-Datei hat folgenden Aufbau:<br />

<strong>Webdesign</strong><br />

• Die Signatur enthält die Buchstaben 'GIF' und eine Versionsnummer (87a oder 89a).<br />

• Die Bildschirm-Definition definiert die Höhe und Breite des Bildschirms in Pixel, das<br />

sogenannte Resolution Flag, Hintergrundfarbe der Grafik sowie das Pixelseitenverhältnis<br />

(aspect ratio). Das Resolution Flag enthält Informationen über die Anzahl Bit pro Pixel (mit 4<br />

Bit pro Pixel sind z.B. 16 Farben möglich)und die Anzahl der benutzten Farben in Bit.<br />

Außerdem existiert ein Flag, welches das Vorhandensein der optionalen globalen Farbskala<br />

anzeigt. Das Pixelseitenverhältnis wird aus dem Quotient von Pixelbreite und Pixelhöhe<br />

berechnet.<br />

• Die globale Farbskala ist für eine präzise Farbwiedergabe bei Bildern verantwortlich, die auf<br />

einer anderen Hardware dargestellt werden sollen als sie erzeugt wurden. Für jede Farbe wird<br />

dabei der jeweilige Anteil der Farben Rot, Grün und Blau durch einen Wert von 0 (kein<br />

Anteil) bis 255 (voller Anteil) definiert. Anhand dieser Farbdefinition ist es anschließend<br />

möglich, für jedes Pixel die passendste farbliche Entsprechung auf der jeweiligen Hardware<br />

zu finden.<br />

• Der Bild-Definitionsblock beginnt mit einem Bildtrennzeichen (2C hexadezimal) und enthält<br />

Informationen über die Position der linken oberen Ecke des Bildes auf dem Bildschirm in<br />

Pixel, über die Breite und Höhe des Bildes in Pixel (nicht größer als der vorher definierte<br />

Bildschirm) sowie diverse Flags. Die Flags geben u.a. an, ob eine lokale Farbskala existiert,<br />

ob das Bild sequentiell oder interlaced auszugeben ist und wieviele Bit eine Farbe der lokalen<br />

GIF 38


JPG<br />

Farbskala beschreiben.<br />

• Eine eventuell vorhandene lokale Farbskala für ein einzelnes Bild hat Vorrang vor der<br />

globalen Farbskala.<br />

• Die eigentlichen Rasterdaten sind sowohl im sequentiellen Modus als auch im<br />

Interlaced-Mode LZW-komprimiert.<br />

• Das GIF-Endzeichen ist stets 3B in hexadezimaler Form.<br />

Bezeichnungen JPEG File Interchange Format, JPG, JPEG, JFIF, JFI<br />

Farben Bis 24-Bit (bis 16,7 Mio. Farben)<br />

Kompression JPEG<br />

Maximale Bildgröße 65536 x 65536 Pixel<br />

Das JPEG File Interchange Format (JFIF) ist eine Entwicklung der Firma C-Cube Microsystems zur<br />

Speicherung JPEG-komprimierter Daten. Eine JFIF-Datei hat folgenden Aufbau:<br />

PCX<br />

• Der Header enthält den Start of Image (SOI) marker (FF D8 hexadezimal), den Application<br />

marker (FF E0 hexadezimal), die Größe der APP0-Daten (s. u.), die Zeichenkette JFIF, die<br />

Versionsnummer der JFIF-Spezifikation (aktuell 1.02), die Maßeinheit (dots per inch, dots per<br />

centimeter oder keine), die Auflösung des Bildes in der festgelegten Maßeinheit sowie die<br />

Auflösung des optionalen Previewbildes in den APP0-Daten.<br />

• Die APP0-Daten enthalten, falls vorhanden, 24-Bit Rot-Grün-Blau-Daten einer verkleinerten<br />

Version des Bildes. Dieses dient dazu, sich einen ersten Eindruck des vollständigen Bildes zu<br />

verschaffen. Dieses Preview-Bild ist nicht komprimiert.<br />

• Optionale Header (ab Version 1.02) erlauben andere Varianten von Preview-Bildern, z.B.<br />

auch solche, die JPEG-komprimiert sind. Version 1.02 empfiehlt, nur noch diese neueren<br />

Header zu benutzen, um Informationen über Preview-Bilder zu speichern.<br />

• Die eigentlichen Bilddaten bestehen aus Blöcken von JPEG-komprimierten Daten.<br />

• EOI beendet die Datei.<br />

Bezeichnungen PC Paintbrush File Format, DCX, PCC<br />

Farben 1-, 2-, 4-, 8-, 24-Bit (s/w bis 16,7 Mio. Farben)<br />

Kompression Keine oder RLE<br />

<strong>Webdesign</strong><br />

JPG 39


Maximale Bildgröße 65536 x 65536 Pixel<br />

<strong>Webdesign</strong><br />

Das PCX-Format wurde von der Firma ZSoft Corporation zur Speicherung und Übertragung der mit<br />

PC-Paintbrush erstellten Grafiken entwickelt. Dieses Format wurde von Microsoft übernommen und<br />

u.a. im Grafikprogramm MS-Paintbrush für Windows benutzt. PCX ist im PC-DOS/Windows-Bereich<br />

weit verbreitet, aber auch auf anderen Plattformen anzutreffen.<br />

Nachteile des PCX-Formates sind eine hardwareabhängige Darstellung von Farben und Auflösung<br />

sowie ein relativ ineffizienter RLE-Kompressionsalgorithmus. Eine PCX-Datei hat folgenden Aufbau:<br />

• Der Header begint mit der PCX-ID (0A hexadezimal) gefolgt von der PCX-Versionsnummer:<br />

1. Version 2.5 mit fester EGA-Farbpalette<br />

2. Version 2.8 mit modifizierbarer EGA-Farbpalette<br />

3. Version 2.8 ohne Farbpalette<br />

4. PC Paintbrush for Windows<br />

5. Version 3.0 von PC Paintbrush (24 Bit)<br />

• Darauf folgen im Header Daten für die Kompressionsmethode (stets eine 1 für RLE, da<br />

scheinbar alle vorhandenen PCX-Daten komprimiert sind), die Anzahl Bits pro Farbebene<br />

(1,2,4,8 Bit, für 16,7 Mio. Farben sind 3 Farbebenen mit je 8 Bit nötig), die Bildgröße<br />

(Koordinaten der linken oberen und der rechten unteren Ecke), die Bildauflösung in<br />

horizontaler und vertikaler Richtung in der Einheit dots per inch (dpi) (abhängig vom<br />

erzeugenden Gerät), Einträge für eine 16 Farben EGA-Farbpalette, die Anzahl der Farbebenen<br />

(1, 3 oder 4), die Größe einer nichtkomprimierten Bildzeile einer einzigen Farbebene, die Art<br />

der Farbpalette (1= s/w oder Farbe, 2= Graustufen) sowie die horizontale und vertikale Größe<br />

des Bildschirmes auf dem das Bild erzeugt wurde. Abgeschlossen wird der Header mit den<br />

Zeichen 00 (hexadezimal).<br />

Gültige Kombinationen von Farbebenen und Anzahl der Pixel pro Farbebene sind:<br />

Farbebenen Bits/Pixel Anzahl Farben Video-Modus<br />

1 1 2 s/w<br />

1 2 4 CGA<br />

3 1 8 EGA<br />

4 1 16 EGA und VGA<br />

1 8 256 Extended VGA<br />

3 8 16,7 Mio. Extended VGA + XGA<br />

• Die eigentliche Pixel-Information ist zeilenweise, nach Farbebenen getrennt komprimiert und<br />

abgelegt. Dabei sind jeweils ebensoviele Zeilen wie Farbebenen pro Bildzeile vorhanden.<br />

Gespeichert werden dabei Informationen zum Rot-, Grün- und Blaugehalt sowie zur<br />

Farbintensität. Es folgen also die Pixelinformationen für eine Bildzeile in der Reihenfolge<br />

Rot, Grün, Blau, Intensität .<br />

PCX 40


TIFF<br />

• Der Inhalt der Farbpalette hängt, falls diese überhaupt existiert, von der Version der<br />

PCX-Datei ab. Hier wird nur die 256-Farben VGA-Palette kurz besprochen. Die Palette<br />

beginnt 769 Bytes vor dem Ende der Datei. Auch ein VGA-Bild benötigt die Palette nur,<br />

wenn das Bild mehr als 16 Farben enthält. Bei weniger als 16 Farben wird die EGA-Palette im<br />

Header benutzt. Die Farbpalette beginnt mit den Zeichen C0 (hexadezimal). Es folgen die 768<br />

Bytes mit den Rot-, Grün- und Blauanteilen der maximal 256 VGA-Farben.<br />

Bezeichnungen Tag Image File Format, TIF<br />

Farben 1- bis 24-Bit (s/w bis 16,7 Mio. Farben)<br />

Kompression Keine, RLE, LZW, CCITT Group 3 und 4, JPEG<br />

Maximale Bildgröße ca. 4 Milliarden Bildzeilen<br />

Besonderheit Mehrere Bilder in einer Datei möglich<br />

TIFF ist eine Entwicklung der Firma Aldus Corporation. Dieses Format hat sich in den letzten Jahren<br />

zu einem der wichtigsten Formate für Rasterdateien entwickelt. Es wurde von Anfang an so<br />

umfangreich konzipiert, daß es eine Vielzahl von Speichermöglichkeiten bietet und neben den<br />

eigentlichen Grafikdaten auch Angaben wie der Name der benutzten Grafiksoftware oder der<br />

Scannertyp aufgenommen werden können. TIFF ist in der Lage, Schwarz/Weiß-, Grauwert- und<br />

Farbbilder zu speichern. Diese Möglichkeiten machen das Format komplizierter, andererseits aber<br />

auch universeller einsetzbar. Neben den meisten Scannern benutzen viele Grafikprogramme das<br />

TIFF-Format. Die letzte Revision ist TIFF 6.0 vom Juni 1992.<br />

Das Einlesen von TIFF-Bildern bereitet manchen Programmen große Probleme. Aufgrund der<br />

möglichen Komplexität einer TIFF-Datei und der damit verbundenen Varianten (z.B. viele<br />

verschiedene Kompressionsmethoden) lesen viele Programme nur einen kleinen Anteil aller<br />

TIFF-Varianten. Die Fehlerursache ist dabei aber meist bei diesen Programmen zu suchen, da das<br />

TIFF-Format sehr präzise definiert ist. Wenn Sie Probleme beim Importieren einer TIFF-Datei haben,<br />

versuchen Sie, diese, falls noch möglich, unkomprimiert abzuspeichern und dann zu importieren.<br />

Eine TIFF-Datei hat folgenden Aufbau:<br />

<strong>Webdesign</strong><br />

• Der Header enthält Informationen für die Speicherart der Datei-Bytes (II für Intel little-endian,<br />

MM für Motorola big-endian) sowie die Versionsnummer (immer 42, unabhängig von der<br />

tatsächlichen Revisionsnummer) und die Adresse des ersten Image File Directories (IFD).<br />

• Ein Image File Directory (IFD) besteht aus den drei folgenden Bereichen:<br />

TIFF 41


•<br />

Jedes Tag (Schlüssel) enthält Informationen über das zugehörige Bild. Dies können z.B.<br />

Bildbreite, Bildhöhe, Komprimierungsart sowie X- und Y-Offset sein. Die Anzahl der Tags ist<br />

variabel. Es gibt über 90 verschiedene Tags, die auftreten können. Daher ist die Länge des<br />

IFD nicht fest. Außerdem kann ein IFD überall (nach dem Header) in einer TIFF-Datei<br />

vorkommen. Enthält die Datei mehrere Bilder, so sind mehrere Anordnungen von IFD und<br />

Bilddaten möglich:<br />

Header<br />

IFD_1<br />

IFD_2<br />

...<br />

IFD_n<br />

Bilddaten_1<br />

Bilddaten_2<br />

...<br />

Bilddaten_n<br />

Header<br />

IFD_1<br />

Bilddaten_1<br />

IFD_2<br />

Bilddaten_2<br />

...<br />

...<br />

IFD_n<br />

Bilddaten_n<br />

Header<br />

Bilddaten_1<br />

Bilddaten_2<br />

...<br />

Bilddaten_n<br />

IFD_1<br />

IFD_2<br />

...<br />

IFD_n<br />

• Folgt keine weiteres Bild, so ist die Adresse des nächsten IFD 00 (hexadezimal).<br />

• Zur Speicherung werden die Bilder in Streifen einer festen Länge eingeteilt. Voreingestellt<br />

sind (2 hoch 32)-1 komprimierte Bildzeilen pro Streifen. Daher besteht ein Bild meist nur aus<br />

einem Streifen. Verschiedene Streifen eines einzigen Bildes können an beliebiger Stelle der<br />

TIFF-Datei auftreten. Die Bilddaten selbst können ebenfalls in beliebiger Reihenfolge<br />

gespeichert werden. Gebräuchlich sind die Varianten<br />

♦ Pro Bildebenen:<br />

Rot Rot Rot ... Grün Grün Grün ... Blau Blau Blau ...<br />

♦ Pro Farbkomponente:<br />

Rot Grün Blau Rot Grün Blau Rot Grün Blau Rot Grün Blau<br />

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

Letzte Aktualisierung: 27. May 2006<br />

<strong>Webdesign</strong><br />

<strong>Webdesign</strong><br />

von Prof. Jürgen Plate<br />

TIFF 42


Wo bekommt man Bilder her?<br />

Bildbearbeitung<br />

Erste Schritte<br />

Nicht jeder ist ein Künstler und kann sich seine Bilder selbst malen. Für die Konstruktion von ein paar<br />

kleinen Sinnbilder (Icons) reicht das küstlerische Können eines jeden aus, bei komplizierteren Bilder<br />

muß man in der Regel auf andere Quellen zurückgreifen. Dies können sein:<br />

• Sammlungen von Bilddateien (Freeware, Shareware, Payware)<br />

• eigene oder fremde Bilder auf Photo-CD oder Diskette (Kodak macht sowas)<br />

• gescannte Vorlagen (Papierbilder, Bücher, etc.)<br />

Da das Scannen von Vorlagen recht häfig ist und gescannte Bilder normalerweise auch nachbearbeitet<br />

werden müssen, zunächst ein paar Tips zum Scannen.<br />

Richtig Scannen<br />

Wie schon im Kapitel 2 erwähnt, dienen Scanner zur Bilderfassung. Die Detailauflösung eines<br />

Scanner wird angegeben in dpi (dots per inch, Bildpunkte pro Zoll). Typischer Wert: 300 dpi (1 Zoll =<br />

2,54 cm). Es lassen sich drei Scanarten unterscheiden:<br />

Schwarz-Weiß oder Strichbild 1 Bit Information pro Bildpunkt<br />

Graustufen oder Halbtöne<br />

Farbe<br />

256 verschiedene mögliche Werte<br />

8 Bit Information pro Bildpunkt<br />

16,7 Mio. mögliche Werte = Truecolor<br />

24 Bit Information pro Bildpunkt<br />

(je 8 Bit für Rot, Grün und Blau)<br />

Scandateien (vor allem in Farbe) werden sehr schnell sehr groß. Dazu ein Beispiel: Ein Bild mit 10 x<br />

10 cm Abmessung in Farbe mit 300 dpi gescannt ergibt eine Dateigröße von ca. 4 MByte. Daher sollte<br />

man die Auflösung beim Scannen dem geplanten Ausgabemedium anpassen, um möglichst kleine<br />

Dateien zu erhalten. Eine höhere Scanauflösung ist reine PLatzverschwendung! Ebenso sind Scans<br />

sinnlos, bei denen Sie noch nicht wissen, wie Sie sie ausgeben wollen. Eine Verdoppelung der<br />

Scanauflösung (z. B. von 150 dpi auf 300 dpi) vervierfacht die Dateigröße.<br />

Ausgabemedien für gescannte Bilder<br />

• OCR (Optical Character Recognition, Texterkennung)<br />

Ziel der OCR (Optical Character Recognition) ist die Umsetzung von eingescanntem Text in<br />

maschinenlesbaren Text.Scannen Sie die Textvorlage als Strichbild in maximaler Auflösung.<br />

Wenn Sie viele Seiten scannen wollen, lohnt es sich, zu testen, bis zu welcher Auflösung das<br />

OCR-Ergebnis gut bleibt. Kleinere Dateien lassen sich von der OCR-Software schneller<br />

bearbeiten als große.<br />

• Bildschirm<br />

Beim Bildschirm kann jedem Bildschirmpunkt ein Scanpunkt zugeordnet sein, d. h. ein<br />

Scanpunkt mit dem Farbwert xyz wird am Bildschirm auch als Punkt mit Farbwert xyz<br />

dargestellt.<br />

Die ideale Scanauflösung bei gegebener Vorlagengröße und Bildschirmauflösung zeigt die<br />

folgende Tabelle für den Fall, daß jedem Bildschirmpunkt ein Scanpunkt mit 24 Bit Farbtiefe<br />

Bildbearbeitung 43


•<br />

zugeordnet werden und das Bild den gesamten Bildschirm einnehmen soll.<br />

Vorlage Bildschirmauflösung Scannen mit Dateigröße<br />

5x5 cm<br />

10x10cm<br />

20x20 cm<br />

640x480 Pixel<br />

800x600 Pixel<br />

1024x768 Pixel<br />

640x480 Pixel<br />

800x600Pixel<br />

1024x768 Pixel<br />

640x480 Pixel<br />

800x600 Pixel<br />

1024x768 Pixel<br />

<strong>Webdesign</strong><br />

300dpi<br />

400dpi<br />

500 dpi<br />

150 dpi<br />

200 dpi<br />

300 dpi<br />

100 dpi<br />

100 dpi<br />

150 dpi<br />

1MByte<br />

1,8 MByte<br />

2,8 MByte<br />

1 MByte<br />

1,8 MByte<br />

4 MByte<br />

1,8 MByte<br />

1,8 MByte<br />

4 MByte<br />

Beispielrechnung: 10 cm sind ungefähr 4 Zoll. Bei einer Scanauflösung von 300 dpi<br />

entsprechen die 10 cm insgesamt ca. 1200 Scanpunkten. Bei 20 cm genügen also 150 dpi, um<br />

dieselbe Anzahl Punkte zu erhalten.<br />

Laserdrucker, Thermotransferdrucker etc.<br />

Sie sollten nur in Farbe scannen, wenn der Ausdruck auch in Farbe erfolgt, da Farbdateien um<br />

einen Faktor 3 größer sind als entsprechende SW-Dateien. Auch SW-Vorlagen sollten zum<br />

Ausdruck als Graustufenscan und nicht als Strichbild behandelt werden. Damit läßt sich eine<br />

deutlich höhere Endqualität erreichen.<br />

Die Auflösung eines Druckers wird wie beim Scanner angegeben in dpi (dots per inch, Punkte<br />

pro Zoll) Typische Werte: 300 dpi, 600 dpi.<br />

Ein SW-Laserdrucker kann nur schwarze Punkte drucken, keine grauen Punkte. Dasselbe gilt<br />

auch für s/w Matrixdrucker und Tintenstrahldrucker. Abhilfe schafft hier Rastern oder<br />

Dithern.<br />

Farbbilder werden meist auf Tintenstrahldruckern, Farblaserdruckern oder<br />

Thermotransferdruckern ausgegeben. Der Druck erfolgt in drei oder vier Druckvorgängen mit<br />

jeweils einer der Farben Cyan, Magenta und Gelb (plus Schwarz bei vier Durchgängen). Für<br />

jeden dieser Vorgänge wird ein Raster- bzw. Ditherprozeß benutzt, so daß hier dieselben<br />

Einschränkungen und Empfehlungen gelten, wie beim Graustufendruck. Beim Farbausdruck<br />

sind jedoch eine Vielzahl weiterer Parameter zu beachten, die nicht mit dem Scannen<br />

zusammenhängen (Stichworte: Rasterwinkel, Moire-Muster). Spezielle<br />

Foto-Tintenstrahldrucker (Epson) verwenden zusätzlich noch helles Cyan und helles Magenta.<br />

Bei diesen Druckern wird das Bild auch in mehreren dünnen Schichten aufgebaut.<br />

Die Auflösung von Farbdruckern beträgt meist 300 dpi für jede Farbe.<br />

• Thermosublimationsdrucker<br />

Thermosublimationsdrucker sind Farbdrucker, bei denen die Farbe von drei Folien (Cyan,<br />

Magenta, Gelb) direkt durch Erhitzen vom festen in den gasförmigen Zustand gebracht wird<br />

(sublimieren). Der Farbdampf dringt dann in ein spezielles Hochglanzpapier ein. Die<br />

abgedampfte Farbmenge läßt sich fast beliebig fein regulieren, so daß ein<br />

Thermosublimationsdrucker echte 'Helligkeitswerte' drucken kann - ganz ohne Rastern oder<br />

Dithern. Bei einer Auflösung von 300 dpi kann hier also ein Scan mit 300 dpi voll ausgenutzt<br />

werden.<br />

• Satzbelichter in einer Druckerei<br />

Für einen Satzbelichter einer Druckerei gilt im Prinzip dasselbe, wie oben für farbige<br />

Laserdrucker u.ä. aufgeführt. Lediglich die Druckauflösung liegt mit etwa 2400 dpi deutlich<br />

höher. Beim Druck mit 257 'Grauwerten' pro Farbe (mehr kann das Auge sowieso nicht<br />

unterscheiden) bleibt eine effektive Druckauflösung von 150 lpi Farbbilder in Zeitschriften<br />

werden oft in dieser Auflösung gedruckt. Wird zur Sicherheit mit etwas höherer Auflösung<br />

gescannt (Faktor 1,2 bis 1,4), sollten 200 dpi zur Ausgabe auf einem Satzbelichter genügen.<br />

Beachten Sie: Erkundigen Sie sich vorher bei der Druckerei, in welcher Auflösung und in<br />

Wo bekommt man Bilder her? 44


Rastern<br />

welchem Dateiformat sie Ihre Dateien entgegennimmt.<br />

Graustufen werden durch unterschiedlich dicke Punkte simuliert. Der Abstand zwischen den Punkten<br />

bleibt stets derselbe. Mit zu nehmendem Grauwert können sich die Punkte sogar überlappen. Rastern<br />

wird beim Offsetdruck oder auch beim Tiefdruck (z. B. Abbildungen in Tageszeitungen) benutzt.<br />

Laserdrucker haben eine feste Punktgröße und sind daher schlecht zum Rastern geeignet.<br />

Dithern<br />

Dabei werden Graustufen durch eine Anordnung mehrerer Druckpunkte simuliert. Je mehr<br />

Druckpunkte in einem bestimmten Gebiet (z. B. einer Druckfläche von 10 x 10 Punkten) schwarz<br />

sind, um so dunkler scheint das Gebiet. Mit einer Matrix aus 4 x 4 Druckpunkten können<br />

beispielsweise 17 Graustufen (mit weiß) dargestellt werden.<br />

Effektive Druckauflösung<br />

Da der Laserdrucker mehrere Druckpunkte benötigt (bei 17 Graustufen z. B. eine 4x4-Matrix), um<br />

einen einzigen grauen Scanpunkt zu drucken, sinkt die Druckauflösung des Druckers. Dies wird in lpi<br />

(lines per inch, Linien pro Zoll) angegeben und als Halbtonfrequenz bezeichnet. Für einen<br />

300-dpi-Drucker sind dies bei 17 Graustufen 300/4 = 75 lpi. In diesem Fall würde also ein Scan mit 75<br />

dpi (beim Scanner sind es dpi, nicht lpi!) ausreichen. Sicherheitshalber scannt man mit etwas höherer<br />

Auflösung, um genug Reserven zu haben. Bewährt hat sich hier das 1,2- bis 1,4-fache der berechneten<br />

Linien pro Inch.<br />

Die Anzahl der Graustufen berechnet sich aus:<br />

Graustufen = (dpi/lpi)*(dpi/lpi) + 1<br />

Die Tabelle zeigt eine Empfehlung zum Scannen:<br />

Drucken mit Graustufen<br />

300 dpi<br />

600 dpi<br />

26<br />

37<br />

50<br />

65<br />

145<br />

Effektive<br />

Druckauflösung<br />

60 lpi<br />

50 lpi<br />

85 lpi<br />

75 lpi<br />

50 lpi<br />

<strong>Webdesign</strong><br />

Scannen mit<br />

75 dpi<br />

75 dpi<br />

100 dpi<br />

100 dpi<br />

75 dpi<br />

Das Wichtigste bei einer digitalisierten Fotografie ist die Vorlage. Nur gestochen scharfe Bilder haben<br />

etwas auf der Glasplatte des Scanners zu suchen. Gehen Sie bei der Auswahl sehr kritisch vor.<br />

Kleinere Unschärfen, die das eigene Auge auf dem Farbbild gerne übersieht, kommen nach dem<br />

Scannen gnadenlos heraus. Problematisch sind Vorlagen aus Zeitschriften oder Zeitungen. Denn hier<br />

droht der Moire-Effekt. Das Resultat sind Flimmereffekte und seltsame Muster im Bild. Dieser<br />

Moire-Effekt läßt sich zwar mit einer Bildbearbeitung halbwegs beheben, doch besser ist es, ihn gar<br />

nicht erst auftreten zu lassen.<br />

Das gescannte Bild speichern Sie erst einmal im BMP-Format ab. Wenn bei der nachfolgenden<br />

Bearbeitung grobe Schnitzer passieren, muß man zumindest nicht neu scannen. Auch bei der<br />

Bearbeitung sollte man Zwischenergebnisse unter verschiedenen Namen speichern. Man hat dann<br />

weniger Angst, bei Experimenten das Bild zu ruinieren.<br />

Wo bekommt man Bilder her? 45


Bildbearbeitung<br />

Bis das Bild fertig ist, sollten Sie auf jeden Fall die größtmögliche Farbtiefe verwenden (16 Mio.<br />

Farben), da manche Filterfunktionen oder die 'Sprühdose' sonst ziemlich häßliche Ergebnisse liefern.<br />

Grundbearbeitung<br />

<strong>Webdesign</strong><br />

Hauptangriffspunkte zur Nachbearbeitung sind Helligkeit und Kontrast. Häufig kommen die Vorlagen<br />

zu dunkel in den Computer. Paintshop Pro verhilft mit Helligkeitsverstellung und Gamma-Korrektur<br />

den Bildern zu mehr Licht. Ob Brightness/Contrast oder Gamma Correction die besseren Ergebnisse<br />

bringt, hängt von der Vorlage ab.<br />

Probieren Sie es zuerst mit dem Gamma-Parameter. Um das Bild aufzuhellen, erhöhen Sie den Wert,<br />

niedrigere Angaben dunkeln ab. Modifizieren Sie die Gamma Correction maximal in Schritten von<br />

0,1, und sehen Sie sich mit der Preview-Funktion das Ergebnis im Originalbild an. Meist genügt eine<br />

Änderung um wenige Stellen hinter dem Komma, um dem Foto zu mehr Helligkeit zu verhelfen. Das<br />

linke Bild zeigt das Scan-Ergebnis, das rechte die Gamma-korrigierte Fassung.<br />

Ebenso vorsichtig gehen Sie bei der Verstellung von Brightness und Contrast vor. Für Bilder, die auf<br />

dem Monitor dargestellt werden sollen, lohnt es sich, einen etwas höheren Kontrast zu wählen. Im<br />

rechten Bild wurde der Kontrast um 25 Prozent erhöht.<br />

Leichte Unschärfen im Bild gleichen Sie mit Filterfunktionen aus (z. B. 'Sharpen'). Doch Vorsicht:<br />

Eine übertriebene Anwendung der Schärfefunktion bringt nur störende Pixelanordnungen anstelle<br />

einer echten Verbesserung. Allzu harte Kontraste weichen Sie 'Soften' auf. Im linken Bild wurde<br />

Bildbearbeitung 46


'gesoftet' und im rechten Bild die Schärfe erhöht.<br />

<strong>Webdesign</strong><br />

Für die Ausgabe auf SW-Druckern kann man das Bild auch in Graustufen umwandeln:<br />

Für den Web-Einsatz sollten Sie nicht mehr als 600 Bildpunkte breite Bilder verwenden. Dann<br />

kommen auch Besitzer kleiner Bildschirme in den Genuß Ihrer Fotos. Ausnahmen bilden<br />

Hintergrundbilder, die bis zu 1280 Pixel breit, aber nur 8 - 16 Pixel hoch sein sollen. Beim<br />

Verkleinern hilft die 'Resample'- oder 'Resize'-Funktion. Um das Seitenverhältnis beizubehalten,<br />

aktivieren Sie die Option 'Maintain Aspect Ratio'. Das Programm berechnet dann automatisch die<br />

passende Bildhöhe. Nach der Verkleinerung lohnt es sich, mit Sharpen die Bildschärfe wieder zu<br />

erhöhen.<br />

Als endgültiges Speicherformat empfiehlt sich bei Fotos JPEG. Bei einfachen Icons oder flächigen<br />

Bildern (z. B. Firmenlogos, Comics, etc.) ist das GIF-Format besser geeignet. Eine Reduzierung der<br />

Farbtiefe bringt zwei Effekte: zum einen wird der Speicherbedarf reduziert und zum anderen kommen<br />

auch Surfer in den Genuß der Bilder, deren Grafikinterface keine 24-Bit-Farbtiefe erlaubt. Bei der<br />

Farbreduktion sollte man auf jeden Fall die Option 'nearest color' wählen, weil das Programm sonst<br />

versucht, zu dithern. Das folgende Bild ist auf 128 Farben reduziert.<br />

Bildbearbeitung 47


Warnung: Bei Bildern für World-Wide-Web-Seiten kann es bei Mischung von GIF und JPEG zu<br />

Verschlechterung der Wiedergabe kommen, wenn das Grafikinterface beim Betrachter keine<br />

Echtfarbendarstellung erlaubt. Man sollte sich die Ergebnisse seiner Arbeit auf jeden Fall auf einen<br />

Rechner mit 'nur' 8 Bit Farbtiefe absehen.<br />

Weitere Funktionen von Paint-Programmen<br />

Stifte und Sprühdose<br />

<strong>Webdesign</strong><br />

Natürlich bieten die Programme weitere interessante Filter- und Bearbeitungsfunktionen. Da man ins<br />

Bild 'hineinzoomen' kann, ist es sogar möglich, auch einzelne Pixel zu bearbeiten. Einige<br />

Retusche-Möglichkeiten sollen an dieser Stelle kurz vorgestellt werden.<br />

Die meisten Malprogramme kennen verschiedene Stift-Typen, die unterschiedliche Effekte auf dem<br />

Maluntergrund hervorbringen. Grundsäzlich sollte man bei allen Retuschen die 24-Bit-Farbtiefe<br />

wählen, da sonst einige Effekte nicht besonders gut wirken. Gegebenenfalls muß man die Farbtiefe<br />

vor der Bearbeitung erhöhen. Die Stift-Wekzeuge haben jeweils verschiedene Parameter, mit denen<br />

sich Dicke, Form und Deckungskraft einstellen lassen.<br />

Das folgende Bild zeigt den Effekt der 'Sprühdose'. Links wurde eine 24-Bit-Farbtiefe gewählt, rechts<br />

im Bild dagegen nur 4 Bit. Dort ergibt sich nur die Wirkung eines Markers. Bei der Sprühdose lassen<br />

sich Farbmenge, Breite und Deckungskraft einstellen. Sie eignet sich gut für Retuschen.<br />

Weitere Funktionen von Paint-Programmen 48


<strong>Webdesign</strong><br />

Die folgenden Beispiele sollen zeigen, wie man bestimmte Bildbearbeitungsfunktionen anwendet.<br />

Dabei gehen wir von einem Basibild aus, das berühmte Denkmal der vier ersten amerikanischen<br />

Präsidenten auf dem Mount Rushmore. Zuerst das Original:<br />

Das wohl mächtigste Retusche-Werkzeug ist das sogenannte 'Clone'-Tool. Man markiert einen Punkt<br />

auf dem Bild und bewegt dann den Mauszeiger an eine andere Stelle im Bild. Sobald man nun mit<br />

gedrückter Taste zu malen beginnt, wird die Umgebung des markierten Punktes parallelverschoben<br />

auf die Zeigerposition kopiert. So lassen sich z. B. störende Objekte im Vordergrund durch<br />

benachbarte Bildpartien ersetzen - oder ein Präsident durch einen anderen (Änderung rot umrandet):<br />

Oft will man aber nur einige Bildteile verändern. Nehmen wir wieder das Original. Dort ist der<br />

Himmel recht grau. Mit dem 'Color Replacer' läßt sich eine bestimmte Farbe mit einer anderen<br />

übermalen, ohne daß andere Farben betroffen werden. Man kann auch mehrere benachbarte Farbwerte<br />

gleichzeitig übermalen, indem man den Wert 'Toleranz' hochsetzt. Im folgenden Bild wurde der<br />

Himmel blau angemalt und mit Hilfe der Sprühdose ein paar Wölkchen dazugemalt.<br />

Weitere Funktionen von Paint-Programmen 49


Nun werden die Blätter wegretuschiert, die etwas unmotiviert im Himmel hängen. Auch die<br />

Tannenbäme im Vordergrund müssen weichen. Kleine Unsauberkeiten beim Malen mit dem<br />

'Clone'-Tool oder dem Stift werden mit der Sprühdose überdeckt.<br />

Zum Schluß kommt noch eine Beschriftung dazu. Bei der Schrift können der Zeichensatz und die<br />

Größe gewählt werden. Außerdem läßt sich die Schrift darstellen indem man die passende<br />

Hintergrund- und Vordergrundfarbe einstellt.<br />

Farbe und Spezialeffekte<br />

<strong>Webdesign</strong><br />

Weitere Effekte<br />

Kommen wir zur Bearbeitung der Farbe und zu speziellen Effekten. Das Ausgangsbild ist ein<br />

SW-Clipart von dürftiger Qualität, ein Bild von Dagobert Duck:<br />

Es werden zuerst die Schraffurlinien wegretuschiert, indem man mit Marker und Stift die 'schlechten'<br />

Stellen entfernt. Viele Malprogramme erlauben den Wechsel zwischen Vorder- und Hintergrundfarbe<br />

durch Wahl der linken oder rechten Maustaste. So kann man bequem mal etwas wegnehmen mal<br />

Weitere Effekte 50


<strong>Webdesign</strong><br />

etwas hinzufügen. Danach wird die Farbtiefe von 1 Bit (SW) auf 4 Bit (16 Farben) erweitert. Die<br />

Farbpalette besteht nun nur aus der Farbe Weiß und 15 schwarzen Feldern. Sie wird erweitert, indem<br />

man die schwarzen Felder durch eine Farbe eigener Wahl ersetzt.<br />

Ein Doppelklick auf die gew nschte Farbe liefert das Palettenfenster. Hier kann man aus den<br />

Standard-Windows-Farben durch Anklicken wählen (links) oder eine individuelle Farbe entwerfen<br />

(rechts). Normalerweise wird man zuerst eine Standardfarbe links anklicken und dann rechts<br />

Modifikationen vornehmen.<br />

Das Ergebnis sehen Sie im folgenden Bild links. Rechts daneben befindet sich dasselbe Bild. Es<br />

wurden lediglich die Farbwerte in der Palette geändert, ohne irgendetwas am Bild selbst zu machen.<br />

Die einfachen Filterfunktionen wurden weiter oben schon behandelt. Daneben besitzen viele<br />

Malprogramme sogenannte 'Deformationsfilter', mit denen das Bild verzerrt werden kann. Im linken<br />

Bild unten wurde der Kopf auf eine Kugel abgebildet. Im rechten Bild wirden zunächst mit der<br />

Kantensuche ('Find Edges') die Umrisse ermittelt. Da das Ergebnis farbige Linien auf schwarzem<br />

Hintergrund liefert, wurde mit der 'Negativ'-Funktion das Bild umgekehrt und in Komplementärfarben<br />

Farbe und Spezialeffekte 51


umgewandelt.<br />

Will man einen reliefartigen Effekt erreichen, kann man die 'Emboss'-Funktion einsetzen. Im linken<br />

Bild wurde die Funktion auf das Farbbild angewendet, dagegen wurde das rechte Bild zun chst auf<br />

Gruastufen reduziert und Augen sowie der Schnabel geschwärzt. Dabei ist dann auch gleich der<br />

Kneifer entfernt worden. Man sieht hier am Schnabel die Reliefstruktur besonders gut.<br />

Weitere Effekte können eingesetzt werden, um ein Bild zu verfremden. Bei vielen Paint-Programmen<br />

gibt es die Möglichkeit, durch spezielle Farbreduktion einen Poster-Effekt zu erzielen oder das Bild in<br />

'Mosaiksteine' zur zerlegen, wobei jeweils die Farbtiefe des Posters und die Kantenlänge eines<br />

Mosaikfeldes frei wählbar ist.<br />

Original 'Posterize' 'Mosaic'<br />

Progressive und transparente Bilder<br />

Progressive, transparente und animierte GIFs<br />

In diesem Abschnitt sollen einige Besonderheiten des GIF-Formats gezeigt werden, die oft bei der<br />

Gestaltung von WWW-Dokumenten (siehe Kapitel 5) Anwendung finden.<br />

Progressive GIFs<br />

<strong>Webdesign</strong><br />

Progressive GIFs (meist 'interlaced GIF' genannt) sind Bilder, die sich nicht von oben nach unten<br />

aufbauen, sondern schnell als Vollbild erscheinen. Sie sind zuerst sehr grob gerastert und im Verlaf<br />

des Ladevorgangs zeigen sich immer mehr Details. Der Betrachter kann so schnell erkennne, ob das<br />

Progressive und transparente Bilder 52


Bild für ihn wichtige Informationen enthält und gegebenenfalls den Ladevorgang vorzeitig abbrechen.<br />

Dazu ein Beispiel:<br />

Für die Konvertierung von GIF-Bildern eignet sich das Programm 'LView Pro' (Windows) recht gut.<br />

Es erlaubt nicht nur die Konvertierung zu interlaced GIFs und transparenten GIFs, sondern auch<br />

Farbanpssung und Filterung aller Art. Es ist jedoch kein Malprogramm. Die Bedienung ist recht<br />

einfach. Um ein progressives GIF zu erzeugen, lädt man das Bild in LView, klickt auf 'Optionen',<br />

'Save GIF interlaced' an und speichert das Bild wieder ab. Man kann vorher natürlich auch gleich die<br />

Gamma-Korrektur und gegebenenfalls eine Farbreduzierung vornehmen.<br />

Transparente GIFs<br />

Bei diesen Bildern wird die Hintergrundfarbe des Bildes als 'transparent' deklariert.<br />

Das erste Bild erscheint als Rechteck mit Hintergrund, was nicht so toll aussieht.<br />

Dieses Bild nimmt dagegen die jeweilige Hintergrundfarbe an.<br />

Beim Lview Pro lädt man das Bild und klickt 'Optionen', 'Background color' an. Danach wird die<br />

Palette des Bildes angezeigt und man kann die gewünschte Farbe anklicken. Das Vorschaubild zeigt<br />

den freigestellten Bildteil schwarz vor dem Hintergrund (oder umgekehrt - ganz nach Wunsch). Man<br />

kann so erkennen, ob eventuell auch Bildteile transparent gemacht werden, die gar nicht transparent<br />

sein sollen. Wenn dieser Fall auftritt, bleibt nichts anderes übrig, als die entsprechenden Bildteile<br />

nochmals nachzubearbeiten. Man wählt dann für die abzudeckenden Teile am besten eine Farbe, die<br />

ganz nahe an der ursprünglichen Hintergrundfarbe liegt. Bei vielen Malprogrammen (z. B. Paintshop)<br />

kann man beim Speichern per Option wählen, ob der Hintergrund transparent sein soll.<br />

Animierte Gifs<br />

<strong>Webdesign</strong><br />

Hier wird die Möglichkeit genutzt, mehrere Bilder in einer Datei zu speichern. Diese Bilder<br />

werden dann mit vorgegebenen Verzögerungszeit nacheinander dargestellt und wirken so wie ein<br />

Progressive, transparente und animierte GIFs 53


Trickfilm. Zum Darstellen und Bearbeiten brauch man spezielle Programme. Einfache<br />

Grafikbetrachter oder auch Malprogramme stellen nur eines der Bilder dar. Die meisten World Wide<br />

Web Browser kommen jedoch mit animierten Bildern zurecht.<br />

Zum Aufbau animierter GIFs braucht man zuerst Einzelbilder der verschiedenen Bewegungsphasen.<br />

Diese Einzelbilder können mit jedem Malprogramm erstellt werden. Hier beispielsweise vier Phasen<br />

eines Hammers:<br />

Mit einem speziellen Programm werden die Bilder dann zu einer Animation zusammengefaßt. Es gibt<br />

für Windows mehrere Programme zu diesem Zweck. Für den Einsteiger eignet sich der 'Gif<br />

Construction Set' von Image Alchemy. Dies Programm besitzt eine Funktion namens 'Animation<br />

Wizard', die einen durch den Aufbau des animierten GIFs führt. Das Ergebnis der Animation mit den<br />

obigen vier Bewegungsphasen sieht dann so aus:<br />

Mit mehr Aufwand kann man auch so etwas machen:<br />

Für ein paar einfache Animationstypen hat der Gif Construction Set Standardfunktionen. Man kann<br />

beispielsweise ein Bild aus dem Hintergrund auftauchen und wieder verschwinden lassen oder eine<br />

Laufschrift produzieren:<br />

Ob Laufschriften wirklich sinnvoll sind, klären wir dann im 5. Kapitel.<br />

Bildbearbeitung für Webseiten<br />

Die wichtigsten Bedienungselemente von Paintshop<br />

Die Werkzeugleiste von Paintshop<br />

Erstellt ein neues Bild. Sie müssen Farbtiefe und Abmessungen eingeben.<br />

Öffnet ein vorhandenes Bild.<br />

<strong>Webdesign</strong><br />

Bildbearbeitung für Webseiten 54


Speichert ein Bild.<br />

Druckt ein Bild.<br />

Macht den letzten Vorgang rückgängig.<br />

Kopiert einen ausgewählten Bereich in die Zwischenablage und entfernt ihn<br />

gleichzeitig aus dem Bild.<br />

Kopiert einen ausgewählten Bereich in die Zwischenablage und belässt ihn im Bild.<br />

Fügt ein Bild aus der Zwischenablage als neues Bild ein.<br />

Zeigt die Grafik als Vorschau (Ganzer Bildschirm) an.<br />

Bringt ein Bild auf 1:1-Darstellung zurück.<br />

Blendet die Werkzeugpalette ein.<br />

Blendet die Stil-Palette ein.<br />

Blendet die Farbpalette ein.<br />

<strong>Webdesign</strong><br />

Die Werkzeugpalette von Paintshop<br />

Zoom-Tool: zum Ändern der Größenansicht Ihres Bildes (Mit linker Maustaste in<br />

das Bild klicken: vergrößern; mit rechter Maustaste in das Bild klicken: verkleinern).<br />

Wenn ein Bild größer ist als der Bild-Fensterbereich, können Sie doch alle Bildteile<br />

sichtbar werden lassen, indem Sie das Bild scrollen.<br />

Wählen Sie einen rechteckigen Bildausschnitt, indem Sie einen entsprechenden<br />

Bereich mit der Maus aufziehen. Um einen Bereich einer vorhandenen Auswahl<br />

hinzuzufügen, drücken und halten Sie die Umschalt-Taste, während Sie den Bereich<br />

auswählen. Um einen Bereich von einer vorhandenen Auswahl zu entfernen, drücken<br />

und halten Sie die Strg-Taste, während Sie den Bereich auswählen. Über die<br />

Stil-Palette lassen sich auch quardratische, elliptische und kreisförmige Bereiche<br />

definieren. Viele Werkzeuge werden nur innerhalb des selektierten Bereichs<br />

wirksam. Deshalb gegebenenfalls die Selektion durch Klicken mit der rechten<br />

Maustaste aufheben.<br />

Sie wählen einen Freihand-Bildausschnitt, indem Sie eine Linie um den Bereich<br />

zeichnen, den Sie auswählen möchten. Um einen Bereich einer vorhandenen<br />

Auswahl zuzufügen, drücken und halten Sie die Umschalt-Taste, während Sie den<br />

Bereich auswählen. Um einen Bereich von einer vorhandenen Auswahl zu entfernen,<br />

drücken und halten Sie die Strg-Taste, während Sie den Bereich auswählen.<br />

Mit dem Zauberstab können Sie einen Bereich einer bestimmten Farbe, eines<br />

Farbtons oder einer Helligkeit auswählen. Mit Hilfe der Stil-Palette kann man<br />

RGB-Wert, Farbton, Helligkeit sowie die Toleranz und die Randschärfe bestimmen.<br />

Mit der Farbpipette wird eine Farbe aus der Grafik oder der Farbpalette als<br />

Vordergrundfarbe (linke Maustaste) oder als Hintergrundfarbe (rechte Maustaste)<br />

abgegriffen.<br />

Die Werkzeugleiste von Paintshop 55


Den Standardpinselverwenden Sie, um zu malen oder freihändig zu zeichnen. Die<br />

Stil-Palette beitet zahlreiche Optionen fü Pinselform und -größe sowie Dichte und<br />

andere EInstellungen.<br />

Sie können den Kopierpinsel benutzen, um Bildteile an eine andere Stelle zu<br />

kopieren. Mit dieser Aktion können Sie innerhalb eines Bildes oder zwischen zwei<br />

Bildern gleicher Farbtiefe kopieren. Um einen Startpunkt für das Kopieren zu<br />

wählen, halten Sie die Shift-Taste gedrückt und klicken SIe an eine Bildstelle.<br />

Sie benutzen den Farbwechsler, um die jeweilige Vordergrundfarbe in einem Bild<br />

durch die jeweilige Hintergrundfarbe auszutauschen und umgekehrt (linke bzw.<br />

rechte Maustaste). Die Stil-Palette erlaubt umfangreiche Anpassungen des<br />

Werkzeugs. EIn Doppelklick tauscht die Farbe im gesamten Bild aus.<br />

Sie benutzen das Retusche-Tool, um fotografische Retuschier-Effekte (z. B.<br />

Aufhellen, Verwischen) an einem Bild vorzunehmen. De Handhabung ist wie beim<br />

Pinsel.<br />

Das Radiergummi löscht eine Bildfarbe (Ersetzen durch Hintergrundfarbe oder<br />

transparent machen).<br />

Die Sprühdose simuliert das Malen nach der Airbrush-Technik oder das Zeichnen<br />

mit einer Sprühdose. Sehr dünn eingestellt eignet sie sich auch zur Retusche von<br />

Rändern und Übergängen.<br />

Mit dem Füll-Tool können Sie einen Bereich mit einer Farbe oder einem Muster zu<br />

füllen. Die Begrenzung wird entweder durch eine Selektion oder durch eine andere<br />

Farbe hergestellt. Neben Einzelfarben ist auch das Füllen mit Mustern oder<br />

Farbverläufen (linear, Rechteck, Wellen, usw.) möglich.<br />

Das Text-Tool benutzen Sie, um dem Bild einen Text zuzufügen. Sie können<br />

verschiedenen Schriftarten und -größen wählen. Dazu klicken Sie zuerst mit dem<br />

Texttool auf das Bild und geben dann Text und Optionen ein. Der Text wird als<br />

Sektion im Bild plaziert und kann noch verschoben oder gedreht werden.<br />

Mit dem Linien-Tool werden Linien gezeichnet. Die Linienbreite können Sie in der<br />

Stil-Palette verändern. Neben dem "normalen" Linienziehen ist auch das Zeichen<br />

von Polygonzügen und Glättung per Bezier-Funktion möglich.<br />

Mit dem Formen-Tool können Sie Rechtecke, Quadrate, Ellipsen oder Kreise<br />

zeichnen - entweder nur den Rand oder als gefüllte Fläche. Die Formen können Sie<br />

in der Stil-Palette verändern.<br />

Die Farbpalette von Paintshop<br />

<strong>Webdesign</strong><br />

Klicken Sie - falls die Palette nicht schon angezeigt wird - auf den -Button in der Werkzeugleiste.<br />

Die Farbpalette wird eingeblendet.<br />

Mit der Pipette kann im oberen Feld direkt die Farbe ausgewählt<br />

werden.<br />

Durch Doppelklicken auf den Pfeil wir Vorder- und Hintergrund<br />

gewechselt. Doppelklick auf das Farbfeld öffnet das<br />

Mischfarbenfenster (s. unten)<br />

Die Werkzeugpalette von Paintshop 56


Die RGB-Werte werden direkt angezeigt. Das Feld zeigt die<br />

gewählte Farbe - auch, wenn Sie die Pipette über das Bild bewegen.<br />

Durch Klick auf die Vorder- oder Hintergrundfarbe können Sie eine eigene Mischfarbe erstellen.<br />

Sie können entweder eine Grundfarbe anklicken oder frei aus dem Farbfeld wählen. Ebenso ist es<br />

möglich, eine Grundfarbe anzuklicken und deren Sättigung mit dem vertikalen Balken ganz rechts zu<br />

ändern. Weiterhin kann die Farbe auch direkt numerisch als RGB- oder HSB-Wertetripel eingegeben<br />

werden. Eingene Mischfarben, die man häfiger benötigt, können in der Palette der benutzerdefinierten<br />

Farben dauerhaft abgelegt werden.<br />

Grafiken selbst erstellen<br />

<strong>Webdesign</strong><br />

Als erstes sollten Sie kleine Grafiken (Logos, Buttons) selbst malen, um mit der Arbeitsweise von<br />

Paintshop vertraut zu werden. Natürlich können Sie auch fertige Grafiken verändern (Copyright<br />

beachten!).<br />

Um eine neue Bilddatei anzulegen wählen Sie [DATEI] / [NEU]. Geben Sie die gewünschte<br />

Bildbreite und -höhe in Pixeln ein. Geben Sie die Farbtiefe ein (für alle Arbeiten beginnen Sie mit 16<br />

Mill. Farben). Das Programm errechnet die Größe der unkomprimierten Datei (im Bitmap-Format!).<br />

Die Farbpalette von Paintshop 57


Die festgelegten Eigenschaften lassen sich bei Bedarf später ändern (z.B. durch Zuschneiden oder<br />

Bereich erweitern). Zur Erstellung der Grafiken bedienen Sie sich der Werkzeuge aus der<br />

Werkzeugpalette.<br />

Zuschneiden der Grafik<br />

Markieren Sie mit dem Selektions-Werkzeug den gewünschten Grafikausschnitt und kopieren Sie<br />

mit oder [Strg]-[C] die Auswahl und erzeugen Sie ein neues Bild mit der Auswahl indem Sie<br />

aklicken oder [Strg]-[V] drücken.<br />

Bereich erweitern<br />

Wählen Sie in der Menüleiste [BILD] / [ERWEITERE BEREICH] und geben Sie die gewünschte<br />

Bildgröße ein. Als Ergebnis erhalten Sie Ihre Grafik in unveränderter Größe eingefügt in einen<br />

vergrößerten Bildbereich. Achten Sie auf die eingestellte Hintergrundfarbe, denn mit dieser wird der<br />

neue Bereich gefüt. Erweitert man das Bild nur um ein Pixel auf jeder Seite und wält eine<br />

kontrastierende Hintergrundfarbe, erhät man einen Rahmen.<br />

Bildgröße ändern<br />

Wählen Sie in der Menüleiste [BILD] / [GRÖSSE ÄNDERN] und geben Sie die gewünschte<br />

Bildgröße ein. Als Ergebnis erhalten Sie Ihre Grafik vergrößert bzw. verkleinert auf die eingestellte<br />

Bildgröße. Speichern der Grafik<br />

Grafiken nachbearbeiten mit Paintshop<br />

Korrektur von Helligkeit und Kontrast<br />

<strong>Webdesign</strong><br />

Wählen Sie im Menü zuerst [FARBEN] [JUSTIEREN] [GAMMAKORR.] und korrigieren Sie die<br />

hellsten und dunkelsten Stellen damit. Nicht zu stark korrigieren, da die anschließende Korrektur von<br />

Helligkeit und Kontrast auch noch auswirkungen auf das Bild hat.<br />

Wählen Sie dann im Menü [FARBEN] [JUSTIEREN] [HELLIGKEIT/KONTRAST] und korrigieren<br />

Sie diese Werte nach Bedarf. Das Vorschaubild zeigt Ihnen den Effekt an.<br />

Grafiken selbst erstellen 58


Beschneiden des Bildausschnitts<br />

Wählen Sie dazu das Markierungswerkzeug und ziehen Sie einen Rahmen (Rechteck, Kreis, Oval,<br />

...) um den gewünschten Bildausschnitt.<br />

Mit oder der Tastenkombination [Strg]-[C] wird der Ausschnitt in die Zwischenablage kopiert.<br />

Mit oder der Tastenkombination [Strg]-[V] wird der kopierte Ausschnitt als neues Bild (-Fenster)<br />

geöffnet und kann dann nachbearbeitet werden. Mit der Tastenkombination [Strg]-[E] kann der<br />

Ausschnitt in ein vorhandenes Bild eingefügt werden.<br />

Verringern der Farbtiefe<br />

Echtfarbenbilder (z. B. Photos) können Sie im JPG-Format direkt abspeichern, denn wenn Sie bei<br />

solchen Bildern die Farbtiefe auf 256 Farben reduzieren und das Ganze dann im GIF-Format<br />

speichern, ist die Datei meist größer als im JPG-Format ohne Farbreduzierung. Auch bei<br />

Farbverläufen sollten Sie keine Farbreduzierung anwenden, weil das Bild dann streifig wird.<br />

Farbgrafiken (Icons, Buttons, usw.) können Sie mit der Auswahl [FARBEN]<br />

[FARBTIEFE VERRINGERN] auf 256 oder weniger Farben (128, 64, 32, 16, ...) reduzieren. Das<br />

Menü bietet die Abstufung 256, 16 und 2. Mit [X-FARBEN] können Sie beliebige Werte von 2 bis<br />

256 wählen. Wählen Sie "Optimierung"und "Nächstlgd." oder ggf. "Fehlerstreuung".<br />

Konvertieren des Bildes<br />

<strong>Webdesign</strong><br />

Bei Echtfarbenbildern und Grafiken mit Farbverläufen verwenden Sie das JPG-Format. Wählen Sie<br />

[DATEI] [SICHERN ALS] und unter "Dateityp" das Format "JPG-JPEG-JFIF-kompatibel":<br />

Grafiken nachbearbeiten mit Paintshop 59


Wählen Sie [OPTIONEN] und dort die Registerkarte JIF/JPG. Als "DPI-Zahl" stellen Sie 100 ein und<br />

als Kompressions-Stufe 15 (= Qualität 85). Sie können bis 75 dpi und Kompressionsstufe 25 gehen, ab<br />

da nimmt die Bildqualität rapide ab.<br />

Bei Grafiken mit bis zu 256 Farben, bei Graustufenbildern und Halbtonbildern (schwarz/weiß)<br />

verwenden Sie das GIF-Format. Wählen Sie [DATEI] [SICHERN ALS] und unter "Dateityp" das<br />

Format GIF. Es gibt vier Untertypen:<br />

Die Version 89a erlaubt transparente GIF-Bilder. "Interlaced" bedeutet, daß das Bild zuerst unscharf<br />

und grob, dann immer schärfer aufgebaut wird. Der Betrachter erkennt hier schon während des<br />

Bildaufbaus schemenhaft das Bild.<br />

Transparente Grafiken erzeugen<br />

<strong>Webdesign</strong><br />

Transparenz bedeutet, daß bestimmte Farben vor einem farbigen Hintergrund durchscheinend<br />

erscheinen. Die dazu erforderlichen Einstellungen werden bis zur Version 5 beim Abspeichern<br />

Grafiken nachbearbeiten mit Paintshop 60


vorgenommen (siehe Beispiel). Ab Version 6 findet man die Optionen unter dem Menüpunkt<br />

[FARBE].<br />

Ohne Transparenz<br />

Mit Transparenz der Indexfarbe 12 (gelb)<br />

Beide Bilder sind gleich, die untere ist mit Transparenz abgespeichert. Die Transparenz wurde auf die<br />

Indexfarbe 12 (gelb) gesetzt.<br />

Bestimmen des Transparenzwertes<br />

<strong>Webdesign</strong><br />

Grafiken nachbearbeiten mit Paintshop 61


Mit der Pipette auf die Farbe gehen, die transparent gesetzt werden soll, und in der Farbpalette den<br />

Transparenzwert ablesen (im Beispiel "I 12").<br />

In der Regel wird man die Hintergrundfarbe einer Grafik transparent setzen, um die rechteckige<br />

Umrahmung der Grafik zu vermeiden. Kommt dabei die Hintergrundfarbe auch in der Grafik vor,<br />

wird ein Teil der Grafik damit ebenfalls transparent. Um diesen Effekt zu vermeiden, müssen Sie<br />

entweder die Hintergrundfarbe der Grafik auf eine Farbe umfärben, die nicht in der Grafik vorkommt,<br />

oder aber die Farbe in der Grafik geringfügig abändern.<br />

Wie man einen Button macht<br />

<strong>Webdesign</strong><br />

Zuerst ein neues Bild beginnen, z. B. 50 x 50 Pixel gross.<br />

Damit der Button überall passt, sollte er auch mit wenig<br />

Farben auskommen, weshalb nur 16 Farben verwendet<br />

werden. Um erhaben zu wirken, braucht der Button einen<br />

Rand.<br />

Es gilt die Regel: wenn der Rand links und oben hell ist<br />

und rechts/unten dunkel, erscheint der Knopf erhaben.<br />

Umgekehrt ergibt sich ein vertieftes "Fenster". Damit man<br />

den Effekt gut sieht, wurde diese Seite leicht grau gefärbt.<br />

Also malen wir den Rand. Ganz aussen Linien in Schwarz<br />

und Weiss.<br />

Eine Pixelreihe nach innen nehmen wir dan Dunkelgrau<br />

neben dem Schwarz und Hellgrau neben dem Weiss.<br />

Nun ist der Knopf fertig. Man kann auch drei Abstufungen<br />

nehmen oder die Kanten zwei Pixel breit machen.<br />

Natürlich geht es auch mit farbigen Buttons, man muß<br />

lediglich die Farbtöne passend wälen.<br />

Jetzt bekommt der Button noch eine Beschriftung oder ein<br />

Logo. Damit die Schrift nicht so flach wirkt wurde sie<br />

zuerst in Dunkelrot auf den Knopf gesetzt und dann leicht<br />

nach links oben versetzt in Hellrot.<br />

Wenn man die Folge der Farbtoene nach innen umkehrt,<br />

erscheint der Button als Fläche, die einen erhabenen<br />

Rahmen besitzt. Hier wurde die helle Schrift auch weiter<br />

nach links oben versetzt und sie erscheint so noch<br />

'schwebender'.<br />

Wie man einen Button macht 62


Statt einer Schrift kann natürlich auch ein Sinnbild (Icon)<br />

erscheinen.<br />

Im Detail sehen die rechten oberen Ecken der Buttons 'Klick' und 'Wow' so aus:<br />

Nach diesem einfachen Strickmuster sind auch die Standard-Windows-Fenster gemacht worden, z. B.:<br />

Die 'Ja'-Taste hat zusätzlich einen schwarzen Rand bekommen und innen eine strichlierte Linie.<br />

Gedückt oder nicht?<br />

Es gilt bei allen Systemen die Regel:<br />

<strong>Webdesign</strong><br />

Das Licht kommt immer von links oben! Wir sind einfach daran gewöhnt eine Figur als erhaben<br />

anzusehen, wenn das Licht von links oben zu kommen scheint. Betrachten Sie die beiden folgenden<br />

Buttons:<br />

Der linke Button scheint erhaben zu sein, der rechte wirkt, als sei er gedrückt. Dabei ist nur die Lage<br />

der Ränder an der Diagonale von rechts unten nach links oben gespiegelt.<br />

Wie man eine Schrift mit Schatten macht<br />

Gedückt oder nicht? 63


<strong>Webdesign</strong><br />

Wie man ein Photo "ins Bild" setzt<br />

Zuerst wird der Text in schwarz oder<br />

einem anderen dunklen Ton gesetzt.<br />

Dazu zuerst die Vordergrundfarbe<br />

wählen, dann Schriftfont und -größe.<br />

Text eingeben und plazieren.<br />

Dann mit der "Blur"-Funktion die<br />

Schrift verwischen. Wenn ein Aufruf<br />

der Blur-Funktion nicht reicht, muß<br />

man sie mehrmals anwenden.<br />

Nun die Schriftfarbe, z. B. rot, wählen<br />

und den Text leicht nach oben und<br />

links versetzt auf den verwaschenen<br />

schwarzen Text setzen.<br />

Wenn man will, kann man die Schrift<br />

dann noch mit der "Soften"- Funktion<br />

leicht unscharf machen - so wie man<br />

es heutzutage oft auf Webseiten sieht.<br />

Normale, rechteckige Fotos wirken mitunter etwas langweilig. Wir wollen aus einem gewöhnlichen<br />

Foto etwas Besonderes machen. Zuert wird das Bild eingescannt. Gegegebenenfalls muß noch eine<br />

Korrektur von Gammawert, Helligkeit und Kontrast durchgeführt werden.<br />

Nun aus dem Bild ein Oval ausschneiden und das als neues Bild speichern. Die Maîangaben des Ovals<br />

(Startpunkt, Groesse) aufnotieren, denn die werden noch gebraucht.<br />

Wie man eine Schrift mit Schatten macht 64


<strong>Webdesign</strong><br />

Nun müssen Sie ein neues Bild erzeugen, das etwas groesser als das ursprüngliche Photo ist. Auf dem<br />

neuen Bild wird nun ein schwarzes Oval mit den oben notierten Abmessungen erzeugen.<br />

Alternativ kann man das ovale Foto nochmals als neues Bild speichern, dieses Bild vergröîern (weiîer<br />

Rand), den Rand mit dem Zauberstab selektieren (Toleranz 0), eine Maske ("aus Selektion") bilden,<br />

die Maske invertieren und schon hat man ein passendes schwarzes Oval, das man dann als neues Bild<br />

abspeichert.<br />

Das schwarze Oval wird nun aufgehellt und dann die Ränder unscharf gemacht. Das erreicht man<br />

durch mehrfaches Anwenden des "Blur"-Filters.<br />

Nun geht es wieder mit dem Originalbild weiter. Das Foto wird nun grau skaliert.<br />

Wie man ein Photo "ins Bild" setzt 65


Wichtig! Damit die weitere Bearbeitung klappt, muß nun die Farbtiefe wieder auf 24 Bit gesetzt<br />

werden. Damit das Bild den Touch alter Fotos bekommt, wird nun die Farbe geändert, indem der<br />

RGB-Wert modifiziert wird, z. B.: Rot + 15%, Grün + 2% und Blau - 10%.<br />

Nun den Rand mit Zauberstab selektieren (Toleranz 0) und die Selektion invertieren. Nun ist das ovale<br />

Bild selektiert und kann ausgeschnitten werden. Jetzt nehmen wir das graue Hintergrundoval und<br />

setzen das ausgeschnittene Photo leicht verschoben auf das graue Feld. Fertig ist das "antike" Photo<br />

mit Schatteneffekt.<br />

Farbverläufe<br />

<strong>Webdesign</strong><br />

Für Hintergründe, Buttons, Banner, etc. braucht man oft einen Farbverlauf, damit das Bild nicht zu<br />

langweilig wirkt. Für alle folgende Arbeiten brauchen Sie nur das Füllwerkzeug . Diesmal wird<br />

jedoch nicht mit einer konstanten Farbe gefüllt, sondern die Möglichkeit genutzt, Füllstile zu<br />

verweden. Begonnen wird mit einem neuen Bild. Für das Beispiel wurde ein Format von 400 x 20<br />

Farbverläufe 66


Pixeln verwendet. Soll der Verlauf für einen Hintergrund verwendet werden, muî man das Kacheln<br />

des Bildes in horizontaler Richtung vermeiden, indem die Bildbreite auf 2048 Pixel oder mehr gesetzt<br />

wird. Der "interessante" Teil des Verlaufs liegt dabei aber meist in den linken 400 bis 800 Pixeln. Für<br />

Buttons, Banner, etc. verwendet man gleich die gewünschte Größe.<br />

Als erstes wird ein einfacher horizontaler Verlauf erzeugt. Der Farbverlauf wird dabei immer<br />

zwischen den eingestellten Farben für Vorder- und Hintergrund erzeugt. In den folgenden Beispielen<br />

wurde blau für den Vordergrund und rot für den Hintergrund verwendet. Es wird im Kontextmenü für<br />

das Füllwerkzeug "linearer Gradient" gewählt und als Richtung ein WInkel von 90 Grad eingestellt.<br />

Das Vorschaubild zeigt den Verlauf.<br />

Dann klickt man mit dem Füllwerkzeug in das neue Bild und schon ist man fertig.<br />

Soll der Verlauf nicht gleichmäßig über das ganze Bild erfolgen, sondern nur im linken Bereich,<br />

selektieren Sie zuerst den gewünschten Bereich, z. B. ein Feld von 100 Pixel Breite. Manchmal ist es<br />

einfacher, die Abmessungen direkt einzugeben, als mit der Maus zu selektieren. Dazu klicken Sie<br />

zweimal (!) auf das entsprechende Icon . Es erscheint ein Menü, wo Sie die Werte direkt eingeben<br />

können.<br />

Das selektierte Feld wird nun gefüllt.<br />

<strong>Webdesign</strong><br />

Nun kann man die Selektion aufheben und den freien Bereich mit der Hintergrundfarbe ohne Verlauf<br />

füllen (rechte Maustaste).<br />

Farbverläufe 67


Nebenbei: Sie können zum Füllen auch ein beliebiges Bild verwenden. Dazu wählen Sie beim<br />

Füllwerkzeug "Muster" als Füllstil. Das zum Füllen verwendete Bild wird geladen und dann beim<br />

neuen Bild über die Optionen des Füllwerkzeugs das geladene Bild als Muster eingestellt.<br />

Dann nur noch mit dem Füllwerkzeug ins neue Bild klicken - fertig. Als Füllmuster eigen sich<br />

natürlich besonders irgendwelche Hintergrundtexturen, dasich hier linke und rechte Seite des Musters<br />

nahtlos aneinanderfügen.<br />

Ein letztes Füllbeispiel wechselt von blau auf rot und wieder zurück. Dazu wird erst die linke<br />

Bildhälfte selektiert und gefüllt.<br />

Danach die Selektion invertieren und die nun die rechte Seite in umgekehrter Richtung füllen.<br />

Sehr gut sehen auch diagonale Verläufe (45 Grad) aus. Oder Sie kombinieren Füllmuster und<br />

Farbverlauf. Anschließend können Sie das Bild mit Filtern und Verformungs-Funktionen noch<br />

weiterbearbeiten oder einen Rahmen hinzufügen. Der Phantasie sind da keine Grenzen gesetzt.<br />

Sitemap-Grafiken<br />

Für Verzeichnisse (Sitemaps, "Verzierung" von Linklisten, etc.) kann man sich eine Reihe von kleinen<br />

Icons basteln. Die folgende Gruppe von Bildern ist durch Capture und Nachbearbeitung der<br />

entsprechenden Windows-Explorer-Anzeige entstanden.<br />

Wenn man diese Icons passend kombiniert und anordnet (mittels HTML-Tabelle, siehe später) lassen<br />

sich daraus sehr flexible Verzeichnislisten herstellen:<br />

Hauptüberschrift<br />

1.1 Unterpunkt<br />

1.2 Unterpunkt<br />

1.3 Unterpunkt<br />

<strong>Webdesign</strong><br />

Sitemap-Grafiken 68


1.3.1 Unterpunkt<br />

1.3.2 Unterpunkt<br />

1.3.3 Unterpunkt<br />

1.3.4 Unterpunkt<br />

1.4 Unterpunkt<br />

1.5 Unterpunkt<br />

Tips für Bilder auf Webseiten<br />

Bildausschnitt verkleinern<br />

Wählen Sie durch Beschneiden des Bildes einen möglichst knappen Bildausschnitt.<br />

Bildauflösung herabsetzen<br />

WEB-Bilder sind in erster Linie für die Betrachtung am Monitor gedacht, deshalb reichen<br />

Auflösungen von 70 dpi bis 100 dpi. Diese Auflösung sollten Sie schon beim Scannen wählen.<br />

Farbtiefe beschränken<br />

Sie müssen nicht immer mit einer Farbtiefe von 24 Bit, das entspricht ca. 16 Millionen Farbnuancen,<br />

arbeiten. Prüfen Sie, ob nicht auch eine Farbtiefe von 256 optimierten Farben eine ähnliche<br />

Bildqualität ergibt. Noch stärker ist der Platzspareffekt, wenn Sie Bilder auf Graustufen umrechnen<br />

lassen.<br />

Verwenden von Vorschaubildchen<br />

Lassen sich voluminöse Grafikdateien nicht vermeiden, so erzeugen Sie kleine Vorschaubildchen<br />

(Thumbnails) und geben Sie die Dateigröße der großen Grafikdatei an. So hat der Betrachter die<br />

Wahl, ob er die Datei laden will oder nicht.<br />

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

<strong>Webdesign</strong><br />

<strong>Webdesign</strong><br />

von Prof. Jürgen Plate<br />

Tips für Bilder auf Webseiten 69


AVI-Format von Microsoft<br />

Video und VRML<br />

Videodaten<br />

Das AVI (Audio Video Interleaved) Dateiformat ist eine spezielle Ausführung der von Microsoft für<br />

Windows 3.1 eingeführten Multimediaerweiterung: dem RIFF (Resource Interchange File Format). Es<br />

dient dazu, auf rekonstruierbare Art und Weise Audio-Videoinformationen zu speichern. Eine<br />

AVI-Datei besteht wie schon etliche Grafikformate) aus Chunks, also aus verschiedenen, ineinander<br />

verschachtelten Datenstrukturen. Sie können, jeder für sich, in weitere Strukturen (Sub-Chunks)<br />

unterteilt werden.<br />

Chunks beginnen mit einem Identifizierer (ID), der im FOURCC (Four Character Code), d. h. in<br />

ASCII angegeben wird. Nach dem ID folgt eine Längenangabe, die sich auf die folgenden Daten<br />

bezieht.<br />

Der erste Chunk einer AVI-Datei hat den FOURCC 'RIFF', die ersten vier Bytes der Daten des<br />

Chunks, der sogenannte Form-Typ, geben die Form der weiteren Daten an, in diesem Fall steht hier<br />

'AVI '. Die restlichen Daten werden in zwei LIST-Chunks gespeichert (ID 'LIST'). Am Ende kann<br />

noch ein optionaler Index-Chunk (ID 'idx1') enthalten sein, der die Vorgabe einer bestimmte<br />

Abspielreihenfolge erlaubt.<br />

RIFF<br />

Microsoft führte mit den Multimediaerweiterungen für Windows 3.1 ein Dateiformat ein, das noch<br />

heute angewendet wird: das Resource Interchange File Format (RIFF). Es dient dazu, beliebige<br />

Multimedia-Ressourcen zu speichern. Die einfachste Form einer AVI Datei wäre ein einziger<br />

Videostream, meistens wird man aber dazu noch Audio-Informationen speichern wollen. Allgemein<br />

ist es möglich, auch spezielle Multimedia-Sequenzen wie etwa einen MIDI-Track als zusätzlichen<br />

Datenstream in einer AVI-Datei aufzunehmen. Um Audioinformationen in Stereoton zu sichern,<br />

benötigt man dazu nur einen Stream, genauso als würde nur Mono gespeichert werden. Weiterhin sind<br />

Control-Tracks möglich, etwa um externe Geräte zu steuern.<br />

RIFF-Dateien haben immer dieselbe Struktur, damit sie problemlos verarbeitet werden können.<br />

Vergleichbar mit globalen und lokalen Prozeduren einer höheren Programmiersprache bestehen<br />

RIFF-Dateien wieder aus einem sogenannten Chunk (engl.: Klumpen, Happen, globale Prozedur), der<br />

wiederum beliebig viele ineinander verschachtelte Subchunks (lokale Prozeduren) enthalten kann. Der<br />

allgemeine Aufbau eines solchen (SUB-)Chunks besteht aus drei Einträgen:<br />

• ID: Identifizierer (Länge vier Byte)<br />

• Size: Längenangabe (Länge vier Byte)<br />

• Datenblock von 'Size' Bytes Länge<br />

Für den Fall, daß die Länge der Daten in Byte ungerade ist, wird rechts ein Füllbyte angehängt. Dem<br />

ID kann man entnehmen, um welche Art von Daten es sich handelt. Er ist als FOURCC (Four<br />

Character Code) gespeichert, wobei die vier Byte als ASCII-Zeichen interpretiert werden. Die einzige<br />

ID mit dem ein RIFF-Chunk beginnen kann, ist 'RIFF'. Unterschiede können dann nur noch in den IDs<br />

der Subchunks auftreten. Hat eine Datenform einen ID mit weniger als vier ASCII-Zeichen Länge,<br />

wird rechts mit Leerzeichen aufgefüllt.<br />

Es ist möglich, sich FOURCC IDs (bestehend aus Großbuchstaben) bei Microsoft registrieren zu<br />

lassen, der Lizenznehmer muß dann zu seinem ID eine eindeutige Spezifikation des Formates der<br />

abgelegten Daten angeben. Kleinbuchstaben werden bei FOURCC´s verwendet, die zu Subchunks<br />

Video und VRML 70


gehören. Es kann durchaus vorkommen, daß Chunks mit verschiedenen IDs Subchunks haben, deren<br />

IDs identisch sind. Dies ist möglich, da die Interpretation der Daten innerhalb der Subchunks nur im<br />

Zusammenhang mit denen des übergeordneten Chunks vollzogen wird.<br />

Innerhalb einer RIFF-Datei werden immer mindestens zwei Chunks vorhanden sein: ein RIFF- und<br />

ein LIST-Chunk. Schon in den ersten vier Bytes der Daten (Offset 8...12 der RIFF-Datei, dem<br />

sogenannten Form-Typ), wird die weitere Form der Daten angegeben. Auch hier verwendet man<br />

wieder den FOURCC, erwartungsgemäß trifft man an dieser Stelle bei einer AVI-Datei auf die<br />

Zeichenfolge 'AVI '. Nach dem Form-Typ kommen die restlichen Chunks der RIFF-Datei. Wie oben<br />

erwähnt ist immer auch noch ein spezieller Chunk, der LIST-Chunk, enthalten (ID: 'LIST'). Die Daten<br />

eines LIST-Chunk bestehen aus einer Typdefinition der Liste (Byte 0...3 der Daten des LIST Chunk<br />

als FOURCC), den sogenannten List-Typ, gefolgt von aneinandergereihten Chunks.<br />

Beispiel für eine einfache RIFF-Struktur:<br />

ID:[RIFF] Size:0x0000220 Form-Typ = [DEMO]<br />

ID:[LIST] Size:0x0000214 List-Typ = [xyz ]<br />

ID:[abcd] Size:0x0000100<br />

ID:[efgh] Size:0x0000100.<br />

AVI<br />

Eine AVI-Datei hat als spezielle RIFF-Datei im Feld Form-Type des RIFF-Chunks den Wert 'AVI '.<br />

Die restlichen Daten des RIFF-Chunk bestehen aus mindestens zwei LIST-Chunks (ID 'LIST') gefolgt<br />

von einem optionalen Index-Chunk (ID 'idx1'). Die erste Liste hat den List-Type 'hdrl', die zweite<br />

'movi'. In der 'hdrl'-Liste sind allgemeine Informationen zum Chunk enthalten, sowie verschiedene<br />

Header, durch die das Format der einzelnen Komponenten der AVI-Datei (Video, Audio, ..)<br />

angegeben wird.<br />

Beispiel:<br />

RIFF ('AVI '<br />

LIST ('hdrl'<br />

..<br />

..<br />

)<br />

LIST ('movi'<br />

..<br />

..<br />

)<br />

['idx1'(AVI Index)]<br />

)<br />

Wichtige Subchunks einer AVI-Datei<br />

Genauer besteht eine 'hdrl' Liste aus zwei Subchunks. Der erste hat den ID 'avih' und definiert globale<br />

Eigenschaften der AVI-Datei, der zweite ist ein LIST-Chunk mit dem List-Type 'strl' (Stream List),<br />

der für jeden Stream mindestens zwei Chunks enthält: den 'strh'- (Stream Header) und den 'strf'-<br />

(Stream Format) Chunk. Optional kann ein 'strd'- (Stream Data) Chunk folgen. Dieser dient dazu,<br />

zusätzliche Daten zu speichern, er kann aber auch bei installierbarem Komprimierer/Dekomprimierer<br />

als Initialisierungswert dienen und dabei uninterpretiert an diese übergeben werden.<br />

Beispiel: Subchunks im &Uunl;berblick<br />

<strong>Webdesign</strong><br />

RIFF ('AVI '<br />

LIST ('hdrl'<br />

'avih'([Main AVI Header])<br />

LIST ('strl'<br />

'strh' ([Stream Header])<br />

AVI-Format von Microsoft 71


)<br />

)<br />

LIST ('movi'<br />

)<br />

'strf' ([Stream Format])<br />

'strd' (zusätzliche Header)<br />

)<br />

(SubChunk: LIST ('rec '<br />

SubChunk1<br />

SubChunk2<br />

)<br />

)<br />

['idx1' (AVIIndex)]<br />

Im 'strh'-Chunk sind allgemeine Informationen zum Stream gespeichert, beispielsweise, um welche<br />

Art von Daten (Bild oder Ton) es sich handelt, welcher Kompressor benutzt oder mit welcher Rate<br />

digitalisiert wurde. Im 'strf'-Chunk ist dann das genaue Format des Streams gespeichert. Die der<br />

'strl'-Liste folgenden Chunks in der 'hdrl'-Liste sind nicht genauer spezifiziert.<br />

Nach den Headern folgen im 'movi'-Chunk die eigentlichen Bild- und Tondaten. Diese können Stream<br />

für Stream als Subchunks der 'movi'-Liste oder aber ineinander verschachtelt gespeichert sein. Im<br />

ersten Fall existiert pro Stream ein Subchunk, im zweiten Fall pro Schachtelung ein LIST-Chunk mit<br />

dem Form Typ 'rec '.<br />

Die 'movi'-Liste speichert dann letztlich die (eventuell komprimierten) Daten für die einzelnen Bilder<br />

des Videos, sowie den (ebenfalls möglicherweise komprimierten) Ton. Nach den eigentlichen Daten<br />

kann, je nach Bedarf, der 'idx1' Chunk eingesetzt werden.<br />

MPEG<br />

<strong>Webdesign</strong><br />

Die Motion Picture Expert Group (MPEG) wurde Ende der 80er Jahre zur Festlegung eines digitalen<br />

Standards für Bewegtbilddarstellung ins Leben gerufen. Die MPEG-Verfahren definieren Normen für<br />

Computer-gestützte Bewegtbilddarstellung, welche für die Bereiche Heimanwendung (MPEG-1) und<br />

Studio (MPEG-2) entwickelt wurden. Zentraler Bestandteil des MPEG_Codierungsalogorithmus ist<br />

die sogenannte Bewegungskompensation. MPEG nutzt hierbei die Tatsache, daß sich zwei<br />

aufeinanderfolgende Bilder derselben Filmszene in der Regel kaum unterscheiden. Anstatt also zwei<br />

Vollbilder mit hohem Speicheraufwand zu codieren, werden lediglich die veränderten Bilddetails<br />

erfaßt und weiterverarbeitet. Verwendung finden hierbei drei verschiedene Bildtypen (Intra-,<br />

Predicted- und Bidirectional predicted), welche sich in Funktion und Codierung voneinander<br />

unterscheiden. Bis zur Verabschiedung der Norm MPEG-1 standen bereits verschiedene Verfahren zur<br />

Verfügung (Motion-JPEG (M-JPEG) und die Recommendation H.261 der CCITT).<br />

Das M-JPEG-Verfahren basiert auf der Serialisierung von im JPEG-Format komprimierten<br />

Einzelbildern. Die Qualität der verlustbehafteten JPEG-Kompression ist dabei in weiten Grenzen<br />

konfigurierbar. Der Kompressionsgrad liegt in der Einstellung für gute Bildqualität bei einem Faktor<br />

von 20 - 25. Die Einbindung von Audiodaten ist jedoch nicht im M-JPEG definiert. Ein Norm für<br />

M-JPEG existiert nicht. Durch die Fixierung auf Einzelbildkompression erwies sich das Verfahren als<br />

zu ineffizient.<br />

Mit der Recommendation H.261 stand ein audiovisueller Standard der CCITT zur Verfügung. H.261<br />

besitzt durch seine Ausrichtung auf Bewegtbildübertragung bereits einen hybriden<br />

Kompressionsalgorithmus, der aus einer Spielart des Deltaverfahrens, einer Restbildkompression<br />

sowie einem optional einbindbaren Verfahren zur Bewegungskompensation besteht. Der Standard ist<br />

u. a. in Auflösung und Bildrate (7,5 - 30 Bilder/s) konfigurierbar, wobei sich die Bandbreite im<br />

Bereich von 40 KBit/s bis zu 2 MBit/s bewegt. Die relativ enge Auslegung der Recommendation<br />

erwies sich jedoch als starkes Handicap.<br />

MPEG 72


<strong>Webdesign</strong><br />

Eine Lösung für die oben aufgeführten Probleme steht mit MPEG-1 und MPEG-2 zur Verfügung,<br />

wobei wesentliche Merkmale von M-JPEG als auch H.261 in die Normung eingingen. MPEG wurde<br />

dabei als generische Norm entworfen, wodurch eine Anpassung an verschiedene Anwendungen<br />

möglich gemacht werden soll.<br />

Die ältere MPEG-1 Norm findet Anwendung in der PC-Welt und im Unterhaltungsmarkt. Die<br />

Übertragungsrate liegt bei den dort üblichen Auflösungen im Bereich bis zirka 1,5 MBit/s (192<br />

KByte/s), wobei aus praktischen Gründen die Grenzen des MPC-1-Standards (für single-speed<br />

CD-ROM Laufwerke) eingehalten werden. Neben der CD-ROM eigenen sich auch andere Medien als<br />

Basis für MPEG. Hierzu gehört das DAT-System als auch die Verwendung in LANs zur<br />

Unterstützung von Video-Mail oder Video-Übertragungen über Telefonleitungen (ISDN).<br />

MPEG 2 wurde im Hinblick auf digitales Fernsehen definiert, es unterstützt das<br />

Zeilensprungverfahren (Interlace). Die der Kompression zugrundeliegenden Verfahren wie<br />

Bewegungskompensation, DCT, Quantisierung und Huffman-Codierung sind für beide<br />

MPEG-Normen im Prinzip identisch. Verbesserungen erfolgten lediglich auf Detailebene. MPEG 2<br />

stellt also von den Grundprinzipien her keinen größeren Fortschritt gegenüber MPEG 1 dar,<br />

insbesondere löst MPEG 2 nicht MPEG 1 ab. So erreichen beide Verfahren in der Regel identische<br />

Datenverdichtungen.<br />

Die folgende Funktionen sollten innerhalb der Norm möglich sein (soweit sie vom jeweiligen Medium<br />

unterstützt werden):<br />

• wahlfreier Zugriff innerhalb des digitalen Videos<br />

• schnelles Vor- und Rückwärtssuchen<br />

• reverse play<br />

• Audio-visuelle Synchronisation<br />

• Fehlertoleranz<br />

• Toleranz gegenüber Codierungs-/Decodierungsverzögerungen (wg. Kapazitätsengpässen)<br />

• Editierbarkeit<br />

• Formatflexibilität (in Größe und Bildwiederholfrequenz)<br />

MPEG beschreibt, wie komprimierte Video- und Audio-Daten zu einem Bitstrom zusammengefaßt<br />

werden. Die Norm umfaßt zwei Teile: die Systemschicht und die Kompressionsschicht. Diese<br />

Schichten haben ihrerseits wieder Teilschichten.<br />

Die Funktion der Systemschicht definiert, auf welche Weise Bitströme von Video- und Audio-Daten<br />

sowie optional privater Daten zu einem einzigen Bitstrom zusammengefaßt werden. Außerdem<br />

werden Zeitmarken (Presentation Time Stamp) bereitgestellt, die der synchronisierten Wiedergabe<br />

von Bild und Ton dienen. Der maximale Abstand zwischen zwei Synchronisationspunkten liegt bei<br />

0,7 Sekunden. Die Systemschicht ist unterteilt in den Pack-Layer und den Packet-Layer. Innerhalb<br />

eines Packs werden Packets aneinander gereiht. Packets enthalten neben den Headerinformationen nur<br />

Daten einer einzigen Art, also entweder Audio-Daten, Video-Daten oder private Daten<br />

MPEG 73


Diese Daten werden von den Kompressionsschichten für Video und Audio codiert und zur<br />

Übertragung in die Päckchen eingefügt.<br />

Das MPEG-Verfahren nutzt die Tatsache, daß in Folgen bewegter Bilder zwischen<br />

aufeinanderfolgenden Bildern große Ähnlichkeit besteht. Mit der Ausnahme krasser Szenenwechsel<br />

werden sich Bilddetails kontinuierlich von einem Bild zum nächsten fortsetzen, wie zum Beispiel eine<br />

sich von links nach rechts bewegende Person. Ein zentraler Bestandteil von MPEG ist nun die<br />

sogenannte Motion Compensation: Die Bewegung der Person wird einfach durch einen Vektor<br />

beschrieben, zum Beispiel durch die Angabe, daß sie sich von einem Bild zum nächsten um 12 Pixel<br />

nach rechts und 10 Pixel nach oben bewegt hat.<br />

Die Erkennung eines zusammengehörigen Objekts wäre in der Praxis allerdings viel zu aufwendig.<br />

Stattdessen werden sogenannte Makroblöcke mit einer Pixelgröße von 16 x 16 untersucht. Diese<br />

Makroblöcke entsprechen vier Blöcken, wie sie bei JPEG codiert werden. Im nächsten Schritt wird die<br />

Differenz aus dem realen Makroblock in Filmbild 1 und dem verschobenen Makroblock aus Filmbild<br />

2 gebildet, Dieses Fehlerbild muß neben dem Verschiebungsvektor zur Beobachtung der<br />

Fehlerfortpflanzung codiert und gespeichert werden. Der geringste Speicheraufwand entsteht<br />

natürlich, wenn der Unterschied zwischen den verschobenen Makroblöcken und den tatsächlich<br />

dargestellten Blöcken so klein ist, daß auf die Codierung der Differenz ganz verzichtet werden kann.<br />

MPEG steuert die Darstellung von komprimiertem Video durch die Festlegung einer Syntax. Die<br />

Regeln zur Erfassung der Bewegungskompensation lassen hingegen viele Freiheiten zu, so daß die<br />

Qualität des MPEG-Endprodukts auch maßgeblich von der Güte des verwendeten<br />

Codierungs-Algorithmus abhängt.<br />

Die MPEG-Bildtypen<br />

MPEG verwendet drei Frames (Bildtypen):<br />

• I-Frame (Intra Frame)<br />

• P-Frame (Predicted Frame)<br />

• B-Frame (Bidirectional predicted Frame)<br />

<strong>Webdesign</strong><br />

MPEG 74


I-Frames (intracodierte Bilder) verwenden nur Informationen aus einem einzigen digitalisierten<br />

Vollbild. Bei I-Frames findet die 'Motion Compensation' somit keine Anwendung. Sie dienen aber als<br />

Ausgangspunkt für die Ermittlung von P- und B-Frames. Der Kompressionsfaktor beträgt typisch 7:1.<br />

P-Frames werden durch 'Motion Estimation' aus zeitlich zurückliegenden Bildern vom Typ I oder P<br />

abgeleitet. Auch P-Frames dienen demnach als Referenzbilder für die Ermittlung von<br />

Verschiebungsvektoren. Der Kompressionsfaktor beträgt typisch 20:1.<br />

B-Frames werden entweder aus früheren oder späteren P- bzw. I-Frames abgeleitet oder auf Basis von<br />

Nachbarbildern interpoliert. Sie dienen niemals zur Berechnung von Motion-Vektoren. Daher tragen<br />

B-Frames im Gegensatz zu P-Frames nicht zur Fehlerfortpflanzung bei. MPEG-Encoder haben darauf<br />

zu achten, daß ein gewisses Datenbudget eingehalten wird, um den Decoder (bzw. das<br />

Speichermedium) nicht zu überlasten. Bei B-Frames darf wegen der fehlenden Fehlerfortpflanzung<br />

mit weniger Bits codiert werden als bei P-Frames, so daß die Verwendung von B-Frames auch zur<br />

Regulierung des Bitstroms dienen kann. Der Kompressionsfaktor beträgt typisch 50:1.<br />

I-Bilder erhalten die Zugriffsfreiheit auf das komprimierte Videomaterial, weil die Bildinformationen<br />

nicht über mehrere Bilder verteilt sind. Ein typisches Muster für die Abfolge von I-, P- und B-Frames<br />

ist die Abfolge<br />

Zur bildgenauen Positionierung ist somit eine Berechnung über maximal sechs Zwischenbilder<br />

erforderlich. Die Kompressionsmethode der Makroblöcke, aus denen I- und P-Frames aufgebaut sind,<br />

basiert auf der Huffman-codierten quantisierten DCT auf 8 x 8 Pixelblöcken (4 Blöcke = 1<br />

Makroblock), wie sie bei JPEG Verwendung findet.<br />

Die Berechnung der Bewegungskompensation (Motion Compensation) ist sehr aufwendig. Bei<br />

Software-Encoding, auch 'Non Real Time MPEG Encoding' genannt, kann die Codierung auf<br />

Standardprozessoren meist nicht in Realzeit erfolgen.<br />

MPEG-Bewegungskompensation<br />

<strong>Webdesign</strong><br />

Bewegungskompensation bedeutet, daß redundante Bildinformationen, welche sich durch<br />

Koordinatenverschiebungen innerhalb einer Bildsequenz ergeben, nur durch einen Vektor mit<br />

Referenzierung auf einen Urblock codiert werden. Bei der Berechnung der Motion Compensation<br />

wird sich dabei jedoch ein Bilddetail nicht immer identisch über eine Folge mehrerer Bilder<br />

fortsetzen. Ein Pixelblock wird sich im Fall von Realvideo aufgrund des Grundrauschens immer mehr<br />

oder weniger vom vorhergehenden unterscheiden. Bei einer Person, die sich durch das Bild bewegt,<br />

ändert sich zum Beispiel der Sitz oder die Schattierung der Kleidung. Falls die Bildunterschiede<br />

signifikant sind, muß neben dem Motion-Vektor auch noch ein Fehlerbild codiert werden. Die<br />

Entscheidung, wohin sich ein Bildinhalt bewegt, kann nur aufgrund objektiver Kriterien erfolgen. Ein<br />

Video-Encoder wird daher in der Umgebung des früheren Ausgangsblocks nach einem Pixelblock<br />

suchen, der eine größtmögliche Ähnlichkeit besitzt.<br />

MPEG 75


Ein denkbares Entscheidungskriterium ist zum Beispiel der mittlere quadratische Abstand der Werte<br />

der beiden 16 x l6-Pixelblöcke. Gemeint ist damit, daß die Quadrate der Differenzen aller<br />

Luminanzwerte und Chrominanzwerte des Originalblocks und des Kandidatenblocks innerhalb des<br />

Suchbereiches errechnet und aufsummiert werden. Auf diese Art und Weise erhält man ein Maß für<br />

die Ähnlichkeit zweier Blöcke. Hat sich ein Block zum nächsten fortgepflanzt ohne sich zu verändern,<br />

ist die Differenz gleich Null. Eine sehr rechenaufwendige Methode wäre, für alle denkbaren<br />

Verschiebungen innerhalb des Suchbereichs die Summe der quadrierten Differenzen zu bilden. Im<br />

Encoder wird dann der Bewegungsvektor des Bildes mit dem kleinsten quadratischen Abstand zum<br />

Original als der beste ausgewählt. Die Suche nach dem besten Motion-Vektor kann mit einer<br />

Auflösung von 1 oder 1/2 Pixel erfolgen. Die für die Codierung verwendeten Vektoren besitzen dabei<br />

eine Auflösung von bis zu einem halben Pixel. Für die Suche nach dem Motion-Vektor kann linear<br />

zwischen benachbarten Pixeln interpoliert werden. Da der Rechenaufwand sehr groß ist, werden<br />

unterschiedliche Suchstrategien angewandt. So kann beispielsweise zunächst das Gitter der 48 x 48<br />

ganzzahligen Verschiebungen abgesucht werden, um danach die acht benachbarten Positionen zu<br />

untersuchen.<br />

Eine andere Methode benutzt für die Suche zunächst ein grobes Raster mit einem Abstand von<br />

mehreren Pixeln um es dann um die beste Position nach und nach zu verfeinern. Diese Methode<br />

kommt mit noch weniger Schritten aus. Allerdings wird die Wahrscheinlichkeit geringer, den<br />

optimalen Motion-Vektor zu finden.<br />

Reduktionsmethode bei Real-Video<br />

<strong>Webdesign</strong><br />

Ein digitalisiertes Videobild muß für MPEG-1 vorbereitet werden, um zu handhabbaren Datenmengen<br />

zu kommen (Übertragungsrate bis zu 1,5 MBit/s). Die üblichen Auflösungen von digitalisiertem<br />

Video sind 720x480 Pixel bei 60 Hz (NTSC) oder 720x576 Pixel bei 50 Hz (PAL), wobei das<br />

Material in YCbCr-4:2:2-Form vorliegt. Diese Auflösung wird in horizontaler und vertikaler Richtung<br />

um die Hälfte verringert. Die horizontale Auflösung wird dabei i. A. nicht einfach durch Weglassen<br />

von Luminanz- oder Chrominanzwerten verringert. Gebräuchlich ist eine gewichtete Mittelung eines<br />

Pixels mit seinen später nicht mehr verwendeten Nachbarpixeln. In vertikaler Richtung kann eine<br />

ähnliche Filterung erfolgen, oder es wird einfach jede zweite Zeile weggelassen, also nur ein Halbbild<br />

verwendet. Die Chrominanz-Auflösung wird in vertikaler Richtung ein weiteres Mal durch Filterung<br />

halbiert, so daß ein 4:2:0 Abtastungsmuster entsteht. Vier Abtastpunkte der Lunimanz entsprechen<br />

hierbei einem Abtastpunkt für die Chrominanz. Die einzelnen Abtastwerte werden wie bei JPEG zu 8<br />

x 8-Matrizen zusammengefaßt, vier der 8 x 8-Blöcke bilden einen Makroblock. Die Farbinformation<br />

wird mit je einer 8 x 8- Matrix für Cr und Cb dargestellt, so daß pro Makroblock insgesamt sechs 8 x<br />

8-Matrizen verwendet werden.<br />

MPEG 76


Die Auflösungsreduzierung wird in Dezimierungsfiltern entweder im MPEG-Prozessorbaustein oder<br />

in Videodigitalisierung-Bausteinen vorgenommen. Bei der Darstellung komprimierten Videomaterials<br />

muß umgekehrt die anfängliche Auflösung wiederhergestellt werden. Dazu werden zwischen den<br />

Luminanz- bzw. Chrominanzwerten Nullwerte eingefügt, und anschließend eine gewichtete Mittelung<br />

durchgeführt. Die Gewichte sind die Filterkoeffizienten eines Interpolationsfilters. So wird zum<br />

Beispiel aus der Folge<br />

10, 11, 12<br />

die Folge<br />

10, 10.5, 11, 11.5, 12<br />

erzeugt. Einfachere Verfahren zur Interpolation arbeiten mit der Wiederholung von Werten.<br />

Die MPEG-Syntax<br />

Die MPEG-Syntax beschreibt, auf welche Weise die zur Verfügung stehenden Daten in hierarchischer<br />

Weise (Schichten) miteinander verknüpft werden.<br />

Sequence-Layer<br />

Group-of-Picture-<br />

(GOP-)Layer<br />

<strong>Webdesign</strong><br />

Diese Schicht dient der Zusammenfassung einer oder mehrere Bildgruppen.<br />

Im zugehörigen Header werden allgemeine Parameter gespeichert. Konkret<br />

sind dies Bild-Breite, Bild-Höhe, Bildformat (z. B. 4:3), Bildwiederholrate<br />

(pps), Übertragungsrate und Puffergröße.<br />

Oberhalb der Picture-Ebene wird in der GOP-Ebene eine beliebige Anzahl<br />

von Bildern in natürlicher Abfolge zu Gruppen von Bildern<br />

zusammengefaßt. In jeder Gruppe muß mindestens ein I-codierter Frame<br />

enthalten sein. Sogenannte geschlossene Gruppen können decodiert werden,<br />

ohne daß für die Motion-Compensation auf die vorherige GOP Bezug<br />

genommen werden muß; sie ist ohne jeden anderen Bezug für sich<br />

decodierbar. Der GOP-Header spezifiziert unter anderem, ob Standard- oder<br />

anwenderdefinierte Quantisierungsmatrizen zur Anwendung kommen. Der<br />

Encoder darf diese Informationen vor jeder Bildgruppe wiederholen, um<br />

einen wahlfreien Zugriff zu erleichtern, die Quantisierungsmatrizen dürfen<br />

dabei sogar geändert werden.<br />

Picture-Layer Diese Schicht enthält alle Informationen, die zum Decodieren eines Bildes<br />

benötigt werden. Der Header enthält die Information, als wievieltes Bild der<br />

entsprechenden 'Group of Pictures' (GOP) das Bild dargestellt werden soll.<br />

Diese Angabe ist notwendig, da wegen der Ruckwärtsbezüge bei B-Frames<br />

der Decoder die Bilder in einer anderen Reihenfolge benötigt als es der<br />

natürlichen Reihenfolge entspricht.<br />

MPEG 77


Slice-Layer<br />

Makro-Layer<br />

<strong>Webdesign</strong><br />

Außerdem wird beschrieben, um welche Art von Frame (I, B oder P) es sich<br />

handelt und ob die Verschiebungsvektoren mit einer Genauigkeit von einem<br />

oder einem halben Pixelabstand dargestellt werden.<br />

Slices sind Streifen von aufeinanderfolgenden Makroblöcken. Ein Decoder<br />

kann jedes Slice getrennt decodieren, ohne auf andere Slices zurückgreifen<br />

zu müssen. Auf diese Weise wird verhindert, daß sich bei<br />

Übertragungsfehlern eine Störung über das ganze Bild fortsetzt. Mit Beginn<br />

des nächsten Slices werden wieder korrekte Daten geliefert. Slices müssen<br />

nicht an der rechten oder linken Bildkante beginnen, sondern können mit<br />

beliebig positionierten Makroblöcken beginnen oder aufhören.<br />

Hier wird beschrieben, wo der Makroblock im Bild liegt, und um welche<br />

Art von Makroblock es sich handelt (I, B oder P). Der Encoder hat bei Pund<br />

B-Frames eine Reihe von Entscheidungen auf der Makroblock-Ebene<br />

zu treffen, die maßgeblich für den Platzbedarf des codierten Bildes sind. Bei<br />

P-Frames ist zunächst festzulegen, ob Motion Compensation angewendet<br />

wird. Danach ist zu entscheiden, ob der Makroblock wegen zu großer<br />

Fehlerfortpflanzung intracodiert wird. Falls ein Verschiebungsvektor<br />

verwendet wird, muß desweiteren geklärt werden, ob das Fehlerbild codiert<br />

wird. Bei B-Bildern ergeben sich drei Ableitungsmöglichkeiten für den<br />

Makroblock: die Ableitung aus zurückliegenden oder zukünftigen<br />

Referenzbildernund schließlich eine Kombination beider Möglichkeiten<br />

(Average). Bei letzteren werden die Luminanzwerte im Encoder durch<br />

Mittelung errechnet. Der Encoder darf nicht mehr Bits pro Sekunde<br />

generieren als der Decoder später verarbeiten kann bzw. als der<br />

Kommunikationskanal übertragen kann.<br />

Block-Layer Auf dieser Ebene wird ein Block von 8 x 8 Pixeln mit Original- bzw.<br />

Fehlerbildinformation in Form von quantisierten und Huffman-codierten<br />

DCT-Koeffizienten dargestellt (siehe auch JPEG). Der in den<br />

DCT-Matrizen am unmittelbarsten ins Auge fallende Unterschied zwischen<br />

Original- und Fehlerbildern ist das Vorzeichen der Luminanzwerte und der<br />

Chrominanzwerte. Während diese Werte im Original stets positiv sind,<br />

ergeben sich bei der Differenzbildung positive und negative Werte. Die<br />

Differenzwerte werden in einer anderen Art und Weise quantisiert, da die<br />

psychovisuellen Gewichtsfunktionen für die Differenzen zweier realer<br />

Bilder keine augenfällige Bedeutung haben. Für die Fehlerbilder wird eine<br />

MPEG 78


<strong>Webdesign</strong><br />

Quantisierungskennlinie verwendet, die um den Nullwert herum in einem<br />

doppelt so breiten Intervall wie an allen anderen Stellen den Wert Null<br />

erzeugt. Das bedeutet in der Praxis, daß der Encoder bei nur geringen<br />

Unterschieden von Helligkeit und Farbsättigung keinen Unterschied codiert.<br />

Virtual Reality: VRML<br />

Eine faszinierende Möglichkeit zur Beschreibung von 3D-Grafiken ist die Beschreibungssprache<br />

VRML (Virtual Reality Modeling Language). Statt riesiger Animationsdateien werden auch hier nur<br />

Anweisungen geschickt, wie eine dreidimensionale Animation aussehen soll. Die so definierten<br />

Animationen werden dann auf dem lokalen Rechner erzeugt. Im Grunde ist dies keine grundlegende<br />

Neuerung, denn jedes Raytracing-Programm arbeitet mit einer solchen 3D-Sprache. Die Software<br />

berechnet anhand der Beschreibung die jeweilige Szenerie und stellt sie grafisch auf dem Bildschirm<br />

dar. VRML wird derzeit speziell auf die Bedürfnisse von WWW und Internet zugeschneidert, verfügt<br />

daher über spezifische Fähigkeiten, etwa die Einbindung von HTML-Dokumenten in 3D-Szenen. Die<br />

Entwicklung von VRML begann im Frühjahr 1994. Der Name VRML wurde damals geboren,<br />

allerdings noch als 'Virtual Reality Markup Language'.<br />

Um nicht bei Null zu beginnen und statt dessen eine geeignete, bereits vorhandene 3D-Technologie zu<br />

nutzen, fiel die Wahl der Entwickler auf 'Open Inventor' von Silicon Graphics (SGI). Open Inventor<br />

unterstützt 3D-Szenarien mit Polygonobjekten, verschiedenen Belichtungsmöglichkeiten, Materialien<br />

oder Texturen. Zudem stellte SGI noch eine erste VRML-Parser-Library zur Verfügung, die als<br />

Grundlage für die Implementierung von 3D-Viewern diente.<br />

Mittlerweile hat die Entwicklung von VRML weitere Fortschritte gemacht. VRML-Szenerien werden<br />

in eigenen Dateien abgelegt, auf die - wie bei normalen HTML-Dateien - Verweise mittels URLs<br />

(Uniform Resource Locator) zeigen. Klickt der Benutzer in seinem WWW-Browser auf ein solches<br />

Link, erkennt die Software die 3D-Datei und startet einen VRML-Viewer, der die weitere Darstellung<br />

übernimmt. VRML ersetzt also weder HTML, noch stellt sie eine Erweiterung von HTML dar. Beides<br />

sind eigenständige Sprachen, ergänzen sich jedoch insofern, als daß Hypertext-Links von HTML zu<br />

3D-Daten und umgekehrt möglich sind. Die Grundlagen von VRML sind recht einfach. Jede Szenerie<br />

setzt sich aus verschiedenen Objekten, den Nodes, zusammen. Ein Node kann ein geometrisches<br />

Gebilde, wie eine Kugel oder ein Kegel sein. Darüber hinaus existieren Nodes, die ein bestimmtes<br />

Material und seine Eigenschaften (Glanz, Reflexion, Farbe) festlegen, mit dem alle folgenden Nodes<br />

dann ausgestattet werden. Einige Nodes bestimmen die Position von anderen Nodes im<br />

dreidimensionalen Koordinatensystem von VRML. Spezielle Nodes dienen als Eltern-Objekte für<br />

andere Nodes, so daß eine baumartige Strukturierung von Eltern- und Kind-Nodes möglich ist. VRML<br />

erlaubt zudem eine Gliederung der Beschreibung mit Blöcken, ähnlich wie die {}-Blöcke in C. Auf<br />

diese Weise lassen sich alle Objekte einer Szenerie übersichtlich festlegen.<br />

Wer sich für weitere Informationen zu VRML interessiert, kann sich unter folgenden WWW-Adressen<br />

umsehen:<br />

• Silicon Graphics (http://vrml.sgi.com/) ist ein Mitbegründer von VRML und bietet viel<br />

Information. Unter (http://www.sgi.com/cosmoplayer/download.html) gibt es einen<br />

VRML-2.0-Viewer für Windows 95/NT.<br />

• Das Magazin Wired bietet einen Tummelplatz für VRML-Freaks<br />

(http://www.wired.com/vrml/).<br />

• Das VRML-Repository der University of San Diego ist eine Fundgrube<br />

(http://www.sdsc.edu/vrml/).<br />

• Die VRML-Spezifikationen (Sprachbeschreibung) findet man unter<br />

(http://www.eit.com/vrml/vrmlspec.html).<br />

Virtual Reality: VRML 79


Beispiel<br />

Das folgende Programm zeigt zwei Quader (Cube) und eine Kugel (Sphere).<br />

#VRML V1.0 ascii<br />

Separator {<br />

Material { diffuseColor .8 .1 .2 transparency .5 }<br />

Translation { translation 0 -1 0 }<br />

Cube {<br />

width 7<br />

height 1<br />

depth 7<br />

}<br />

}<br />

Material { diffuseColor .1 .8 .2 }<br />

Translation { translation 1.5 .5 1.5 }<br />

Cube { }<br />

Material { diffuseColor .1 .2 .8 }<br />

Translation { translation -1.5 .5 -1.5 }<br />

Sphere { }<br />

Im Bild eines VRML-Browser sieht das dann so aus:<br />

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

<strong>Webdesign</strong><br />

<strong>Webdesign</strong><br />

von Prof. Jürgen Plate<br />

Beispiel 80


WWW-Dokumente gestalten<br />

Aufbau von HTML-Dokumenten<br />

HTML-Dokumente sind Text-Dateien, die spezielle Steuer- und Formatierbefehle, sogenannte Tags<br />

enthalten. Ein HTML-Tag besteht aus einem Namen und (optionalen) Parametern. Es ist<br />

eingeschlossen von < und >. Alle Tags, die nicht leer sind, also beispielsweise Text enthalten,<br />

benötigen weiterhin ein Ende-Tag, das von eingeschlossen ist. Solche Konstrukte werden<br />

auch "Container" genannt. Die Groß/Kleinschreibung spielt bei Tags keine Rolle.<br />

Ein HTML-Dokument wird eingeleitet durch und abgeschlossen durch


Der Dokumententyp<br />

<strong>Webdesign</strong><br />

Das -Tag gibt die "Document Type Definition" (DTD) des Dokuments an. Die DTD<br />

bestimmt die Grammatik und die Syntax der HTML-Sprache. Kurz gesagt: Der Dokumententyp am<br />

Anfang einer (X)HTML- oder auch einer XML-Datei gibt an, um welchen Typ von Dokument es sich<br />

handelt, damit Browser erkennen, wie sie ein Dokument darzustellen haben. Durch die Angabe des<br />

Doctypes im Kopf des HTML-Documents vereinbaren Sie also nicht nur HTML-Version, sondern Sie<br />

teilen dem Browser mit, wie korrekt das Dokument der Definition folgt. Das Tag ist zwar nicht<br />

zwingend erforderlich, wird aber vom W3C empfohlen.<br />

In XHTML-Seiten ist das !DOCTYPE-Tag immer erforderlich. Falls Sie sich streng an die<br />

HTML4-Spezifikationen halten, verwenden Sie beispielsweise<br />

<br />

Für XHTML wird die folgende Definition verwendet:<br />

<br />

Moderne Browser verwenden den Document Type, um ihr Verhalten zu ändern: Im Modus "strict"<br />

verhalten sie sich standardkonform, im Modus "loose" (Quirksmodus) simulieren sie die Fehler ihrer<br />

Vorgängerversionen, um alte HTML-Dokumente or-dentlich anzuzeigen.<br />

DOCTYPE HTML PUBLIC bedeutet, dass sich das Dokument auf die öffentlich verfügbare<br />

HTML-DTD bezieht.<br />

"-//W3C//DTD HTML 4.01//EN" kennzeichnet das W3C als maßgeblichen Herausgeber des<br />

Dokumententyps "HTML", der in der Version 4.01 im Dokument benutzt wird. EN ist die<br />

Sprachangabe (Englisch) und bezieht sich nicht auf den Inhalt des Dokuments, sondern auf die<br />

Notation von HTML-Elementen und -Attributen.<br />

Die URL "http://www.w3.org/TR/html4/strict.dtd" erlaubt es dem Browser rein theoretisch, die DTD<br />

und darin enthaltene Regeln und Elemente zu laden, wenn sie benötigt werden. In der Praxis kann kein<br />

Browser neue Regeln nachträglich adaptieren, weshalb man die Adresse auch weglassen darf.<br />

Der strict-Modus schließt HTML-Elemente und -Attribute aus, die das W3C als Aufgabe von<br />

Stylesheets ansieht. Auch die Benutzung der HTML-Elemente innerhalb des Dokuments wird bei<br />

"strict" sehr eng gesehen. So müssen alle Elemente innerhalb des body-Elements in Blockelementen<br />

stehen. Ein Text, der ohne umschließenden -Container direkt zwischen das öffnende und<br />

schließende -Tag geschrieben wird, wird beispielsweise schon als Verletzung der Syntaxregeln<br />

angesehen.<br />

Aufbau von HTML-Dokumenten 82


Der Zusatz "transitional" kennzeichnet ein Dokument, in dem Elemente und Attribute benutzt werden,<br />

die als unerwünscht gelten. Wer seine Dokumente auch für Uralt-Browser grafisch und typografisch<br />

aufbereiten möchte, wird diese Variante verwenden.<br />

"frameset" kennzeichnet ein Dokument, das Frames (nicht iframe) benutzt. Beispiele für HTML4<br />

strict, transitional und frameset:<br />

<br />

<br />

<br />

Beispiele für XHTML 1.0 strict, transitional, frameset:<br />

<br />

<br />

<br />

Beispiel für XHTML 1.1 DTD:<br />

<br />

Im Header kann man noch den Dateityp des Dokuments und den verwendeten Zeichensatz in einem<br />

-Tag angeben, z.B.:<br />

<br />

<br />

Was ist ein URL?<br />

URL steht für Uniform Resource Locator. Ein URL ist eine Referenz auf eine Datei oder sonstige<br />

Ressource. Diese Referenz wird benötigt, um Verweise auf andere Stellen im aktuellen Dokument, auf<br />

andere Dokumente auf dem aktuellen Server oder um andere Dokumente auf anderen Servern<br />

anzugeben. Darüber hinaus kann mit einem URL auch ein Internet-Dienst spezifiziert werden. URLs<br />

dienen auch zum Einbinden von Grafiken oder anderen multimedialen Objekten.<br />

Das Aufbau-Schema eines URLs ist<br />

<strong>Webdesign</strong><br />

Dienst://Host.Domain:Port/Pfad/Dateiname<br />

Die Angabe des Ports kann entfallen, es wird dann der für den angegebenen Dienst definierte<br />

Standardport verwendet. Ebenso können Host und Domain entfallen, wenn es sich um den lokalen<br />

Server handelt. Auch der Pfad kann weggelassen werden, wenn sich die gesuchte Datei im aktuellen<br />

Verzeichnis befindet. Grundsätzlich sollten bei Links auf lokale Dateien die Angaben von Host und<br />

Domain weggelassen werden, da sonst jedesmal eine (unnötige) Nameserveranfrage erfolgt.<br />

Wenn die WWW-Dokumente nicht auf dem Server selbst entwickelt werden, kann es häfig<br />

vorkommen, daß sich die Pfade von Entwicklungsrechner und Server unterscheiden. In diesem Fall<br />

kann man gut mit relativen Pfade arbeiten, die beim Zugriff auf die Seiten vom Server automatisch in<br />

absolute Pfadangaben umgesetzt werden.<br />

Der Dokumententyp 83


Als Dienste werden viele Internet-Dienste unterstützt. Die wichtigsten sind<br />

http<br />

Dies gibt eine Datei oder ein Verzeichnis auf einem WWW-Server an.<br />

file<br />

Gibt eine lokale Datei an.<br />

ftp<br />

Gibt eine Datei oder ein Verzeichnis auf einem FTP-Server an. Standard ist anonymer ftp.<br />

Will man einen Usermnamen angeben, muß man diesen getrennt durch '@' vor dem Host<br />

angeben.<br />

mailto<br />

Erlaubt es, eine e-mail zu versenden.<br />

news<br />

Gibt eine Newsgruppe auf einem News-Server an.<br />

Weitere Dienste, auf die ein URL verweisen kann sind WAIS, telnet, tn3270 oder Gopher.<br />

Browser<br />

<strong>Webdesign</strong><br />

Der Begriff Browser kommt aus dem Englischen "to browse" und bedeutet soviel wie schmökern oder<br />

blättern. Hierbei handelt es sich um ein Programm, mit dem es möglich ist, die Seiten des World Wide<br />

Web multimedial darzustellen und anzuschauen. Der Browser ist also ein Werkzeug zur komfortablen<br />

und bequemen Darstellung von Texten, Grafiken, Sprache oder Musik. Der Browser wurde speziell<br />

für den WWW-Dienst entwickelt, der auf einem Hypertextsystem basiert, womit es möglich ist,<br />

mittels sogenannter "Hyperlinks" von einem WWW-Angebot zu einem anderen zu springen.<br />

Ein Hyperlink ist nichts weiter als ein Querverweis, der entweder auf irgendeine anderen Stelle im<br />

gleichen Dokument, auf ein anderes Dokument des gleichen Anbieters oder auf ein Dokument eines<br />

anderen Anbieters irgendwo auf der Welt verweist. So sind die unterschiedlichsten Dokumente<br />

weltweit miteinander vernetzt, eben ein "weltweites Gewebe". Jedes Dokument hat eine eindeutige<br />

Adresse, den sogenannten URL (Uniform Resource Locator), unter dem es direkt aufgerufen werden<br />

kann. Dies erfolgt durch Eintippen des URL in das Eingabefeld-Feld im oberen Bereich des<br />

Browser-Fensters. Im Text eingebaute Querverweise sind meist unterstrichen und werden in einer<br />

anderen Farbe angezeigt. Querverweise können sich aber auch hinter Bildern verbergen. Wenn man<br />

mit dem Mauszeiger über die WWW-Seite fährt und auf einen Querverweis trifft, wird der Cursor zur<br />

Hand und die Adresse des Querverweises im unteren Fensterrahmen eingeblendet. Die Informationen<br />

selbst liegen als strukturierte Textdokumente vor, die im HTML-Format (HTML=Hypertext Markup<br />

Language) kodiert sind. Der Browser interpretiert die HTML-Kodierung und stellt die WWW-Seite<br />

für den Benutzen optisch ansprechend dar.<br />

Da sich die Fähigkeiten der WWW-Angebote permanent weiterentwickeln, besteht die Möglichkeit,<br />

seinen Browser der technologischen Entwicklung ständig anzupassen. Hierzu gibt es sogenannte<br />

"Plug-Ins". Ein Plug-In ist ein Programm, das die multimedialen Fähigkeiten der Browser erweitert<br />

(z.B.: Real Audio Player, Shockwave (Flash), Acrobat Reader, Quicktime Movie Player, etc.) Ein<br />

Browser ist somit ein offenes System, das durch die Plug-Ins erweitert wird. Die gängigsten Browser<br />

sind der Microsoft Internet Explorer, der Netscape Communicator und Opera, wobei von den beiden<br />

letztgenannten Browsern nicht nur Windows-Versionen, sondern auch Produkte für UNIX und Linux<br />

zur Verfügung stehen. Diese konkurrierenden Produkte werden oft auf CDs, die in<br />

Computer-Fachzeitschriften enthalten sind, mitgeliefert oder können kostenlos aus dem Internet<br />

heruntergeladen werden.<br />

Der Cache-Speicher des Browsers dient zum vorübergehenden Speichern einer angeforderten<br />

WWW-Seite im Arbeitsspeicher oder auf der Festplatte des eigenen Rechners. Wird eine WWW-Seite<br />

angefordert, so prüft der Browser zunächst, ob diese Seite nicht schon einmal abgerufen wurde und<br />

Was ist ein URL? 84


noch im Cache abgelegt ist. Ist dies der Fall, so kann er eine Kopie dieser Seite viel schneller aus dem<br />

Cache (d.h. von der eigenen Festplatte) holen, als wenn er sie erneut vom Server anfordern würde.<br />

Will man verhindern, daß eine erneut angeforderte WWW-Seite aus dem Cache-Speicher gelesen wird<br />

(weil man z.B. weiß, daß die Originalseite verändert wurde), so kann man mit der<br />

Aktualisieren-Funktion dem Browser mitteilen, daß die entsprechende Seite erneut vom<br />

WWW-Server zu holen ist. Der Cache-Speicher hat eine definierte Größe. Ist er voll, so werden<br />

sukzessive mit den neu hinzukommenden Seiten die am längsten darin gespeicherten Seiten gelöscht.<br />

Will man beim Netscape Communicator wirklich alles neu laden (was wichtig beim Testen von<br />

Frames ist) muß man beim Anklicken der Schaltfläche die Shift-Taste gedrückt halten.<br />

Überschriften<br />

Verschiedene Strukturelemente<br />

Es existieren sechs verschiedene Stufen von Überschriften, die entsprechenden Tags lauten<br />

<br />

ist die oberste Stufe, mit ihr sollte der Beginn eines Dokumentes überschrieben werden.<br />

Kommentare<br />

Kommentare werden vom Browser ignoriert und nicht angezeigt. Sie sind eingeschlossen von und dürfen nicht verschachtelt werden.<br />

Zeilenumbruch<br />

Leerzeichen und -zeilen in HTML-Dokumenten werden vom Browser in der Regel ignoriert, da<br />

Informationen über Zeilenwechsel und Beginn eines neuen Abschnittes in den einzelnen<br />

Strukturanweisungen enthalten sind. Sollte es einmal nötig sein, einen Zeilenumbruch zu erzwingen,<br />

so geschieht dies mit Hilfe der -Anweisung.<br />

Absatz<br />

Der Beginn eines neuen Absatzes wird durch markiert, er führt beim Browser dazu, einen<br />

vertikalen Abstand einzufügen und den Text zu Beginn einer neuen Zeile fortzuführen. Der<br />

Absatzende-Tag hat bei nachfolgenden P-Tag keine Wirkung.<br />

Waagrechte Trennlinie<br />

der Tag zeichnet eine waagrechte Trennlinie. Mit den Optionen WIDTH und SIZE können<br />

Länge und Dicke eingestellt werden. Die Linie wird zentriert, falls sie kürzer als die Seite ist. Die<br />

Breite kann sowohl in Pixeln, als auch in % der Seitenbreite angegeben werden. EIn paar Beispiele:<br />

<br />

<br />

<strong>Webdesign</strong><br />

Mit den bisher behandelten Tags lassen sich bereits einfache Dokumente gestalten. Der folgende Text<br />

zeigt ein Musterdokument mit HTML-Auszeichnungen:<br />

<br />

Die erste Seite<br />

Browser 85


<strong>Webdesign</strong><br />

<br />

Überschrift Ebene 1<br />

Überschrift Ebene 2, align=right<br />

Überschrift Ebene 3, align=left<br />

Überschrift Ebene 4, align=center<br />

Überschrift Ebene 5<br />

Überschrift Ebene 6<br />

<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

<br />

Will man einen Zeilenumbruch, muß man das angeben:<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

<br />

<br />

Vom Browser dargestellt sieht er dann so aus (wobei der Titel nicht sichtbar ist):<br />

Waagrechte Trennlinie 86


Überschrift Ebene 1<br />

Überschrift Ebene 3, align=left<br />

Überschrift Ebene 5<br />

Überschrift Ebene 6<br />

Überschrift Ebene 2, align=right<br />

Überschrift Ebene 4, align=center<br />

Hier kommt dann ein ganz normaler Fliesstext..... Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext..... Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext..... Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext..... Hier kommt dann ein ganz normaler Fliesstext.....<br />

Will man einen Zeilenumbruch, muß man das angeben:<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Hier kommt dann ein ganz normaler Fliesstext.....<br />

Vorformatierter Text<br />

Vorformatierter Text kann in und eingeschlossen werden. Text innerhalb dieser Tags<br />

wird in der Regel in einem nichtproportionalen Zeichensatz dargestellt, wobei alle Leerzeichen und<br />

-zeilen sowie Zeilenumbrüche direkt übernommen werden. Sämtliche HTML-Tags behalten jedoch<br />

ihre Gültigkeit und werden auch innerhalb des -Blocks dargestellt.<br />

Einrückungen, längere Zitate<br />

Einrückungen und längere Zitate werden am besten in einem eigenen Abschnitt dargestellt. Dies<br />

erreicht man durch und . Text innerhalb dieser Tags wird<br />

normalerweise vom Browser eingerückt oder in Schrägschrift und als separater Absatz mit etwas<br />

Abstand zum normalen Text angezeigt.<br />

Verschiedene Schriftarten<br />

Unter HTML gibt es zwei verschiedene Typen von Schriftarten, physikalische und logische. Erstere<br />

geben direkt die Art der Schrift an (fett, schräg, usw.) während letztere sagen, um welche Art Text es<br />

sich handelt und dem Browser die Entscheidung über die tatsächliche Darstellung überlassen. Alle<br />

Schriftartenbefehle benötigen ein Start- und ein Ende-Tag. Folgende physikalische Schriftarten<br />

existieren:<br />

<br />

<br />

<br />

Nichtproportionaler Typewriter-Zeichensatz<br />

Fettschrift<br />

Überschrift Ebene 1 87


<br />

Italic oder Schrägschrift<br />

unterstrichen (Achtung! Manche Browser stellen Links unterstrichen dar!)<br />

durchgestrichen<br />

Folgende logische Schriftarten stehen zur Verfügung:<br />

<br />

Hervorgehoben, wird dargestellt durch Schrägschrift.<br />

<br />

Stärkere Hervorhebung, wird dargestellt durch Fettschrift.<br />

<br />

Wird verwendet für Befehle und Quellcode, dargestellt durch nichtproportionalen<br />

Zeichensatz.<br />

<br />

Eine Folge von Buchstaben.<br />

<br />

Wird bei Anleitungen zur Darstellung des vom Benutzer einzugebenden Textes<br />

verwendet.<br />

<br />

Für die Darstellung von Variablennamen.<br />

<br />

Für die Definition von Ausdrücken, wird dargestellt durch Fett- oder Schrägschrift.<br />

<br />

Wird verwendet für Zitate, dargestellt durch Schrägschrift.<br />

Neuere Browser beherrschen auch die folgenden Tags:<br />

<br />

Teile der Schrifttiefergestellt .<br />

<br />

Höhergestellte Teile der Schrift.<br />

<br />

Ein Wort größer.<br />

<br />

Ein Wort kleiner.<br />

Listen<br />

<strong>Webdesign</strong><br />

Zur Zeit stehen folgende Listen-Typen zur Verfügung:<br />

Einfache Listen (Unnumbered Lists):<br />

Diese werden eingeleitet durch . Sie zählen die einzelnen Elemente ohne laufende<br />

Numerierung auf, stattdessen wird ein neutrales Aufzählungszeichen vorangestellt. Welches<br />

Zeichen dazu verwendet wird ist Browser-abhängig, möglich sind z.B. Punkte, Striche oder<br />

Sternchen. Jedes Listenelement wird eingeleitet durch . Zum Beispiel:<br />

◊ Erstes Element<br />

◊ Zweites Element<br />

◊ Drittes Element<br />

Als Parameter bei und bei können Sie mit TYPE=xxx den Typ des<br />

Aufzählungssymbol angeben. Weiter unten sehen Sie die drei Möglichkeiten: TYPE=DISK<br />

für den schwarzen Punkt, TYPE=CIRCLE für den Kreis und TYPE=SQUARE für das<br />

Verschiedene Schriftarten 88


Quadrat.<br />

Aufzählende Listen (Ordered Lists):<br />

Sie sind den einfachen Listen sehr ähnlich, nur werden bei ihnen die Listenelemente<br />

fortlaufend durchnumeriert. Das zugehörige Listen-Tag lautet . Zum Beispiel:<br />

1. Erstes Element<br />

2. Zweites Element<br />

3. Drittes Element<br />

Auch bei der "Ordered List" haben Sie die Möglichkeit, mit TYPE=xxx das<br />

Aufzählungssymbol festzulegen (bei und bei ). und zwar:<br />

TYPE=1 für Ziffern<br />

TYPE=A für Großbuchstaben<br />

TYPE=a für Kleinbuchstaben<br />

TYPE=i für kleine römische Ziffern<br />

TYPE=I für große römische Ziffern<br />

Außerdem kann man mit dem Parameter START=nnn den Startwert der Aufzählung und mit<br />

VALUE=nnn bei jedem einzelnen den Wert des Aufzählungspunktes festlegen. nnn ist<br />

dabei immer numerisch anzugeben, die Umwandlung in Buchstaben oder römische Ziffern<br />

erfolgt automatisch.<br />

Beschreibende Listen (Descriptive Lists):<br />

Elemente einer beschreibenden Liste bestehen aus dem Titel der zu beschreibenden Sache,<br />

welche in irgendeiner Form besonders hervorgehoben wird, sowie dem Beschreibungstext.<br />

Eine beschreibende Liste wird eingeleitet durch , der Titel durch und der<br />

Beschreibungstext selbst durch . EinBeispiel bildet diese Aufzählung.<br />

Es existieren noch weitere Listentypen, die jedoch von den Browsern recht stiefmütterlich behandelt<br />

werden. ist eine in der Darstellung etwas kompaktere Form von , ist für eine<br />

Liste von kürzeren Elementen gedacht, die auch in mehreren Spalten auf dem Bildschirm dargestellt<br />

werden können.<br />

Listen können beliebig verschachtelt werden, man sollte sich jedoch nicht darauf verlassen, daß der<br />

Browser die einzelnen Verschachtelungsebenen hinreichend eindeutig darstellen kann (z. B. durch<br />

Wechsel des Aufzählungszeichens):<br />

• Erstes Element<br />

♦ Erstes Unterelement<br />

♦ Zweites Unterelement<br />

♦ Drittes Unterelement<br />

♦ Viertes Unterelement<br />

• Zweites Element<br />

♦ Erstes Unterelement<br />

◊ Erstes Unter-Unterelement<br />

◊ Zweites Unter-Unterelement<br />

◊ Drittes Unter-Unterelement<br />

♦ Zweites Unterelement<br />

◊ Erstes Unter-Unterelement<br />

◊ Zweites Unter-Unterelement<br />

◊ Drittes Unter-Unterelement<br />

• Drittes Element<br />

Links zu anderen Dokumenten<br />

<strong>Webdesign</strong><br />

Ein Link wird eingeleitet durch


• HREF Gibt einen URL auf ein Zieldokument an, auf das beim Anwählen des Links<br />

gesprungen werden soll. Nur durch Angabe des HREF-Parameters wird ein Link aktiv und<br />

selektierbar.<br />

• NAME Wird verwendet, um innerhalb eines Dokumentes eine Markierung anzugeben, welche<br />

im HREF-Parameter angegeben werden kann. Somit können einzelne Stellen in einem<br />

Dokument (z. B. Unterkapitel) direkt angesprungen werden.<br />

• REL Ermöglicht es, eine "Beziehung" zu dem Zieldokument zu definieren.<br />

• REV Gibt ebenfalls eine Beziehung zwischen Dokumenten an, jedoch in der<br />

entgegengesetzten Richtung, d. h. ein Link von A nach B mit REL="X" ist das gleiche wie<br />

ein Link von B nach A mit REV="X".<br />

• URN Gibt eine eindeutige Kennummer für das Dokument an, um dem Browser die<br />

Möglichkeit zu geben, das doppelte Laden von Dokumenten zu erkennen und zu verhindern.<br />

Dies ist noch in der Entwicklung.<br />

• TITLE Gibt den Titel des Zieldokumentes an, damit der Browser diesen darstellen kann.<br />

Dieser Titel sollte identisch sein mit dem durch definierten im Kopf des<br />

Zieldokumentes.<br />

Parameter, die Leer- oder Sonderzeichen enthalten, müssen in doppelte Anführungszeichen (")<br />

eingeschlossen werden. Es macht nichts aus, wenn man grundsätzlich die Optionswerte in "<br />

einschließt. Alle diese Parameter sind optional, jedoch macht ein Link ohne HREF- oder<br />

NAME-Parameter nicht viel Sinn.<br />

Danach wird das Tag mit > beendet, gefolgt vom Text oder der Grafik, welche den Link<br />

repräsentieren sollen. Abgeschlossen wird der Link durch .<br />

Hier einige Beispiele:<br />

1. Ein typisches Link zu einer anderen WWW-Seite:<br />

Mehr dazu in Kapitel 9.<br />

Die entsprechende Stelle im Text wird mit dem NAME-Tag markiert:<br />

Kapitel 9<br />

Durch den Browser formatiert könnte das etwa so aussehen:<br />

Willkommen bei der Mutter aller WWW-Seiten.<br />

Naehere Information erhalten Sie in Kapitel 9.<br />

...<br />

Kapitel 9<br />

<strong>Webdesign</strong><br />

Willkommen bei der <br />

Mutter aller WWW-Seiten.<br />

2. Verweis auf eine andere Stelle im Text:<br />

Bei Links innerhalb des Angebots eines Servers sollte man die vollständige URL mit Angabe<br />

des Rechnernamens (z. B. http://www.online-de.de) vermeiden, denn bei solchen Angaben<br />

erfolgt jedesman eine Anfrage zum Nameserver. Ein lokales Link sollte also z. B.<br />

"tips/index.html" lauten. Zu beachten ist auch, daß der Schrägstrich Verzeichnistrenner ist,<br />

nicht der Backslash(\), der bei DOS und Windows verwendet wird. Bei den lokalen Links gibt<br />

Links zu anderen Dokumenten 90


<strong>Webdesign</strong><br />

es auch noch einen Unterschied: Ein Link kann vom Stammverzeichnis des Serverangebots<br />

ausgehen. In diesem Fall beginnt die Angabe des Dateipfades mit einem Schrägstrich (/). Man<br />

nennt dies einen absoluten Pfad. Man kann aber auch vom aktuellen Verzeichnis ausgehen, z.<br />

B. "news/index.html". Es wird dann in das Verzeichnis "news" gewechselt und die Datei<br />

"index.html" an den Browser geschickt. Will man dann wieder ins übergeordnete Verzeichnis<br />

aufsteigen, kann die Verzeichnisangabe ".." verwendet werden (wie bei DOS und Windows),<br />

z. B. "index.html". Da sich solche Links auf das aktuelle Arbeitsverzeichnis beziehen, nennt<br />

man sie relative Links. Die relativen Links haben den Vorteil, daß man komplette<br />

Verzeichnisstrukturen innerhalb der Dateistruktur des Servers "umziehen" kann, ohne daß<br />

eine einzige WWW-Seite geändert werden muß.<br />

Natürlich können Sie nicht nur HTM-Dokumente verlinken, sondern jede beliebige Datei. Bei<br />

Links auf Bilder (z. B. A HREF="image.gif">Ein Bild ) wird einfach die Bilddatei angezeigt.<br />

Man kann damm mit dem "Back"-Button des Browsers zur ursprünglichen Siete<br />

zurückkehren. Handelt es sich um Links auf andere Dateien, beispielsweise PDF-Dateien,<br />

gepackte Archive (.zip), Programme (.exe), Word-Dokumente (.doc) oder Excel-Tabellen<br />

(.xls), dann hängt es von den Einstellungen des Browsers und von den zur Verfügung<br />

stehenden Plug-Ins ab, was geschieht. Bei sicherer Browsereinstellung fragt der Browser<br />

nach, ob das Dokument geöffnet oder auf Platte gespeichert werden soll, im anderen Fall wird<br />

nur nachgefragt, wenn der Dateityp dem Browser nicht bekannt ist, und ansonsten die Datei<br />

mit dem passenden Programm (MS Word, Acrobat Reader, usw.) automatisch geöffnet. Damit<br />

haben Sie auch die Möglichkeit, Dateiarchive per WWW-Interface anzubieten.<br />

Sonderzeichen<br />

Der für HTML gültige Zeichensatz ist ISO Latin-1 (ISO 8859-1). Auf Rechenanlagen, die nur<br />

in der Lage sind, 7-Bit-Zeichen darzustellen, können Zeichen oberhalb von 127 durch<br />

spezielle "character entities"gebildet werden. Diese beginnen immer mit einem<br />

Kaufmanns-Und (&), gefolgt vom Zeichennamen und abgeschlossen durch ein Semikolon.<br />

Auf diese Weise können alle Sonderzeichen dargestellt werden, auch wenn sie auf dem<br />

Rechner oder der Tastatur des Dokumentenautors nicht verfügbar sind.<br />

Außerdem müssen die reservierten Zeichen der HTML-Tags immer umschrieben werden. Es<br />

sind dies: &amp;='&', &quot;='"', &lt;=''.<br />

Das deutsche "ä" wird beispielsweise durch &auml; repräsentiert, ein "Ä" wäre &Auml;, ein<br />

"ß" wäre &szlig;.<br />

Sounds und anderes<br />

Sounddateien, Animationen, VRML-Dateien öffnen das entsprechende Abspielprogramm im<br />

Browser. Entweder es ist fest eingebaut (z. B. für Sounds), ein sogenanntes 'Plug-In' oder man<br />

hat dem Browser angegeben, welches externe Programm er verwenden soll. Bei unbekannten<br />

Dateiformaten bietet der Browser an, die Datei abzuspeichern.<br />

Der -Tag ist eine Netscape-Erweiterung von HTML 3.2 zur allgemeinen<br />

Einbindung von Multimedia-Elementen in eine Webseite. Damit können neben dem Aufruf<br />

von Plug-Ins auch lokale Programme zur Darstellung von Sounds oder anderen Elementen<br />

aufgerufen werden. Die allgemeine Syntax des HTML-Containers für Plug-Ins sieht so aus:<br />

<br />

Sonderzeichen 91


<strong>Webdesign</strong><br />

♦ Über type wird das verwendete Plug-In angegeben. Diese Angabe kann das Plug-In<br />

über eine Versionsnummer noch genauer spezifizieren (z. B.<br />

"application/x-java-applet; version=1.2" für ein Java-Plug-In).<br />

♦ Über die optionale Angabe pluginspace kann man einen Download-Ort in Form eines<br />

URL angeben, wovon ein lokal bei einem Anwender nicht vorhandenes Plug-In bei<br />

Bedarf automatisch geladen werden kann.<br />

♦ Die Angabe code spezifiziert die Datei.<br />

♦ Die beiden restlichen Attribute legen Breite und Höhe eines Anzeigebereichs fest.<br />

Den -Tag gibt es auch in einer einfacheren Variante. Damit kann er auch zur<br />

Einbindung von Videos und Musik in den üblichen Standardformaten verwendet werden:<br />

<br />

Mit CONTROLS wird eingestellt, wie die Steuerung des Players erscheint, z. B.<br />

CONTROLS=console. Die Parameter AUTOSTART, LOOP und HIDDEN haben entweder<br />

"true" (wahr) oder "false" (falsch) als Wert. Sie legen fest, ob die Wiedergabe beim Starten<br />

automatisch gestartet wird, ob sich die Wiedergabe ständig wiederholt und ob der Player<br />

versteckt wird. Ein Beispiele für ein solches Embedding:<br />

<br />

Es wird eine Midi-Sounddatei eingebunden, versteckt (hidden=true) und automatisch<br />

(autostart=true) gestartet und dann ständig wiederholt (loop=true).<br />

Die Verwendung des -Tags sollte mit Vorsicht geschehen, da die Technik im<br />

Wesentlichen auf Netscape-Browser ab der Version 4.x und neuere Varianten des Explorer<br />

beschränkt ist. Aber auch sonst sollte die Anwendung mit Vorsicht behandelt werden, da es<br />

nicht immer erwünscht ist, wenn sich eine angewählte Seite gleich mit Sound meldet.<br />

Farbe<br />

Man kann die Farbe von Text, Links und Hintergrund der Seite im BODY-Tag definieren.<br />

Dabei erfolgt die Farbangabe Sedezimal (also zur Basis 16), wobei für die drei Grundfarben<br />

rot, grün und blau jeweils ein Wert zwischen 0 und FF (dezimal 0 .. 255) angegeben wird.<br />

#000000 ist beispielsweise Schwarz, #FFFFFF ist weiß. Die reinen Grundfarben haben die<br />

Werte rot = #FF0000, grün = #00FF00 und blau = #0000FF. Für diese Seite wurde im<br />

BODY-Tag definiert:<br />

♦ Die Farbe der normalen Schrift (schwarz): TEXT="#000000"<br />

♦ Die Farbe des Hintergrundes (weiß): BGCOLOR="#FFFFFF"<br />

♦ Die Farbe eines 'frischen' Hyperlinks (blau): LINK="#0000FF"<br />

♦ Die Farbe eines schon mal selektierten Hyperlinks (lila): VLINK="#FF00FF"<br />

♦ Die Farb eine Hyperlinks während des Anklickens (rot): ALINK="#FF0000"<br />

Komplett sieht das dann so aus:<br />

<br />

Aber Vorsicht: wer blaue Schrift auf gelbem Hintergrund zeigt, darf sich nicht wundern, wenn<br />

der Leser irritiert ist. Besonders übel ist es, wenn die Links dann auch noch quitschbunt<br />

dargestellt werden.<br />

Mit dem Tag FONT kann man nicht nur die Zeichengröß (SIZE=..., Zahlenwert absolut<br />

Sounds und anderes 92


<strong>Webdesign</strong><br />

oder relativ), sondern auch die Farbe (COLOR=...) einzelner Textpassagen ändern.<br />

Die meisten Browser erlauben die Darstellung von Farben und verschiedene Zeichenhöhen im<br />

Text, z. B.<br />

H A L L O F A N S<br />

Für solche Späßchen sollte man aber zu einem speziellen HTML-Editor greifen. Aber auch<br />

von Hand kann man beispielsweise mit oder <br />

(und natürlich dem schließenden ) die Farbe der Schrift nach belieben ändern.<br />

Man sollte aber in jedem Fall darauf achen, daß man alle Farben angibt, also Text-,<br />

Hintergrund-, und Linkfarben.<br />

Die Darstellung der Farbe hängt auch von der Farbauflösung des jeweiligen Bildschirms auf<br />

Betrachterseite ab. Damit die Seite auch bei geringerer Farbauflösung (256 Farben) noch toll<br />

aussieht, sollte man sich auf bestimmte Farben beschränken. Dabei sind unter Windows von<br />

den 256 Farben nur 216 wirklich verfügbar, da Windows 40 Farben für eigene Zweche<br />

reserviert.<br />

Bei zu geringer Farbauflösung würde der Browser die Bilder dann dithern. Es ist dazu im<br />

Browser eine Color Lookup Table (CLUT) implementiert.<br />

Denken Sie auch daran, daß bei unterschiedlichen Browsern oder Plattformen die<br />

Farbsättigung unterschiedlich behandelt wird - mal heller, mal dunkler.<br />

Die folgende Tabelle, ein GIF-Bild, zeigt eine Übersicht. Eine komplette Übersicht der 216<br />

'Pseudo-Grundfarben' präsentiert die Farbtabelle als HTML-Datei oder als GIF-Datei. Diese<br />

Grundfarben sollte man für Schrift-und Hintergrundfarbe verwenden.<br />

Farbe 93


Font-Spielereien<br />

S<br />

E<br />

N<br />

K<br />

R<br />

E<br />

C<br />

H<br />

T<br />

E<br />

S<br />

C<br />

H<br />

R<br />

I<br />

F<br />

T<br />

Unter Umständen bietet sich ein unkonventioneller Umgang mit verschiedenen<br />

Schriften an, denn eine spezielle Zielgruppe erfordert eine besondere Art der Gestaltung.<br />

Sparsam verwendet kann das auch recht nett aussehen. Ganze Textpassagen sollte man<br />

aber so nicht schreiben, es verschlechtert deren Lesbarkeit.<br />

S P I E L E R E I E N<br />

Eine weitere Möglichkeit wäre die Verwendung eines größeren Buchstabens immer am<br />

Beginn eines neuen Absatzes. Und zusätzlich zur Größe kann man auch eine andere<br />

Farbe wählen.<br />

UND NOCH EINEVARIANTE: ALLE WORTE INVERSALIEN SCHREIBEN. BEI DEN WORTEN, DIE<br />

WIRKLICH GROSS GESCHRIEBEN WERDEN, DIE ANFANGSBUCHSTABEN IN NORMALER GRÖSSE<br />

SETZEN UND ALLE ANDEREN BUCHSTABEN ZWEI NUMMERN KLEINER MACHEN. DAS NENNT SICH<br />

DANN KAPITÄLCHEN.<br />

<strong>Webdesign</strong><br />

Font-Spielereien 94


Wie man links sieht, ist es auch möglich, Worte senkrecht zu schreiben. Dafür muß<br />

man nur nach jedem Buchstaben einen Zeilenumbruch erzwingen und den Inhalt der<br />

Tabellenzelle mittig ausrichten.<br />

Tabellen<br />

Tabellen sind recht einfach strukturiert. Sie werden vom -Tag eingeleitet und durch<br />

abgeschlossen. Mit und wird die Überschrift der<br />

Tabelle definiert. Dabei legt der Parameter ALIGN fest, ob die Überschrift über der Tabelle<br />

(ALIGN=TOP) oder unter der Tabelle (ALIGN=BOTTOM) steht.<br />

Danach folgen die einzelnen Zeilen der Tabelle, die zwischen und stehen. Die<br />

einzelnen Felder (Spalten) der Tabelle werden in und eingeschlossen. Der<br />

Browser berechnet automatisch die Maße der Tabellenfelder. Wird anstelle von TD der Tag<br />

TH verwendet, erscheint die Schrift im Feld fett.<br />

Durch die Option BORDER=nn kann der Tabellenrand festgelegt werden; BORDER=1<br />

versieht die Tabelle mit einem schmalen Rahmen, BORDER=0 zeichnet die Tabelle ohne<br />

Rand. Die beiden folgenden Tabelle werden eingegeben als:<br />

<br />

Eine einfache Tabelle ohne Rahmen<br />

Spalte 1Spalte 2Spalte 3<br />

Zeile 1Feld 1,1Feld 2,1Feld 3,1<br />

Zeile 2Feld 1,2Feld 2,2Feld 3,2<br />

<br />

<br />

<br />

Eine einfache Tabelle mit Rahmen<br />

Spalte 1Spalte 2Spalte 3<br />

Zeile 1Feld 1,1Feld 2,1Feld 3,1<br />

Zeile 2Feld 1,2Feld 2,2Feld 3,2<br />

<br />

Das sieht dann so aus:<br />

<strong>Webdesign</strong><br />

Eine einfache Tabelle ohne Rahmen<br />

Spalte 1 Spalte 2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2,1 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 2,2 Feld 3,2<br />

Eine einfache Tabelle mit Rahmen<br />

Spalte 1 Spalte 2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2,1 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 2,2 Feld 3,2<br />

Man kann Spalten auch über mehrere Zeilen ziehen oder eine Zeile über mehrere Spalten. Der<br />

Quelltext:<br />

<br />

Tabelle mit gedehnten Zellen<br />

Spalte 1/2Spalte 3<br />

Zeile 1Feld 1,1Feld 2Feld 3,1<br />

Zeile 2Feld 1,2Feld 3,2<br />

<br />

Tabellen 95


sieht dann folgendermaßen aus:<br />

<strong>Webdesign</strong><br />

Tabelle mit gedehnten Zellen<br />

Spalte 1/2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 3,2<br />

Weitere Möglichkeiten bieten geschachtelte Tabellen.<br />

Geschachtelte Tabelle mit gedehnten Zellen<br />

Feld 1 steht auf der linken Seite und enthält einen Text der links an den danebenstehenden<br />

Tabellen vorbeifliesst. Mit dem Parameter WIDTH und einer Prozentangabe kann man<br />

festlegen, wie breit die Tabellenteile sein sollen. WIDTH erlaubt auch eine Angabe in Pixeln,<br />

aber dabei sollte man vorsichtig sein. Mit ALIGN=CENTER kann man erreichen, daß die<br />

Tabelleneinträge mittig liegen. Mit CELLPADDING=10 wird der Abstand zwischen<br />

Zelleninhalt und Zellenrahmen auf 10 Pixel festgelegt.<br />

Eine einfache Tabelle (1) mit Rahmen<br />

Spalte 1 Spalte 2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2,1 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 2,2 Feld 3,2<br />

Eine einfache Tabelle (2) mit Rahmen<br />

Spalte 1 Spalte 2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2,1 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 2,2 Feld 3,2<br />

Eine einfache Tabelle (3) mit Rahmen<br />

Spalte 1 Spalte 2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2,1 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 2,2 Feld 3,2<br />

Der TABLE-Tag kann noch weitere Parameter haben, die wichtigsten sollen hier aufgezählt<br />

werden:<br />

♦ Mit dem Parameter WIDTH und einer Prozentangabe kann man festlegen, wie breit<br />

die Tabelle sein soll. Die Angabe WIDTH="90%" würde beispielsweise dafür sorgen,<br />

daß die Tabelle nicht die volle Breite des Browserfensters einnimmt.<br />

♦ Mit ALIGN=CENTER kann man erreichen, daß die Tabelle mittig (bzw. links- oder<br />

rechtsbündig) liegt. Die Kombination von ALIGN=CENTER und WIDTH="90"<br />

würde dafür sorgen, daß links und rechts der Tabelle etwas Rand bleibt - was meist<br />

besser aussieht.<br />

♦ Die Optionen ALIGN=LEFT oder ALIGN=RIGHT ermöglichen es, den Text links<br />

oder rechts neben der Tabelle weiterlaufen zu lassen. Mit dem Tag wird das Weiterlaufen des Textes unterhalb der Tabelle erzwungen.<br />

♦ Mit CELLPADDING wird der Abstand zwischen Zelleninhalt und Zellenrahmen in<br />

Pixel festgelegt. Man kann so dafür sorgen, daß der Text in der Tabelle nicht zu stark<br />

links und rechts am Rand "klebt".<br />

Geschachtelte Tabelle mit gedehnten Zellen 96


♦ Mit CELLSPACING verändern Sie den Abstand der Tabellenfelder zueinander. Es<br />

wird also der Abstand zweier benachbarter Felder (horizontal und Vertikal) festgelegt.<br />

♦ Mit BGCOLOR="#rrggbb" kann die Hintergrundfarbe der Tabelle festgelegt werden.<br />

Besonders wichtig beim Gestalten von Tabellen sind die Parameter CELLPADDING und<br />

CELLSPACING im -Tag. Als Beispiel soll die folgende Tabelle verändert werden.<br />

♦<br />

♦<br />

<strong>Webdesign</strong><br />

Eine einfache Tabelle ohne Rahmen<br />

Spalte 1 Spalte 2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2,1 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 2,2 Feld 3,2<br />

CELLPADDING wird der Abstand zwischen Zelleninhalt und Zellenrahmen in Pixel<br />

festgelegt. Man kann so dafür sorgen, daß der Text in der Tabelle nicht zu stark links<br />

und rechts am Rand "klebt". Dazu die obige Tabelle mit CELLPADDING=10.<br />

Eine einfache Tabelle ohne Rahmen<br />

Spalte 1 Spalte 2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2,1 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 2,2 Feld 3,2<br />

CELLSPACING legt fest, wieviele Pixel die Zellenlinien breit sind. Es wird also der<br />

Abstand zweier benachbarter Felder (horizontal und Vertikal) festgelegt. Auch dazu<br />

die obige Tabelle mit CELLSPACING=10.<br />

Eine einfache Tabelle ohne Rahmen<br />

Spalte 1 Spalte 2 Spalte 3<br />

Zeile 1 Feld 1,1 Feld 2,1 Feld 3,1<br />

Zeile 2 Feld 1,2 Feld 2,2 Feld 3,2<br />

Übrigens: Das geschützte Leerzeichen (&nbsp;) in einer leeren Zelle vermeidet, daß dieses<br />

Feld der Tabelle erhaben erscheint. Viele Browserversionen unterscheiden nämlich zwischen<br />

einer leeren Zelle und einer Zelle mit Inhalt.<br />

Versieht man eine Tabelle ohne Rand (BORDER=0) mit einer Hintergrundfarbe, die nur ein<br />

Feld enthält, kann man einen Text farbig hinterlegen. Damit es gut aussieht, sollte man mit<br />

CELLPADDING für etwas Rand um den Text sorgen.<br />

Tabellen kann man aber auch anders verwenden. Die folgende Tabelle hat nur ein Feld. Der<br />

Rand wurde mit BORDER=10 und CELLPADDING=10 passend verbreitert.<br />

Man nehmen eine Tabelle mit nur einem Feld<br />

und strukturiere den Text mit dem -Tag<br />

und schon hat man ein 'Hinweisschild'.<br />

Wenn man nun noch den Hintergrund mit einfärbt, erhält<br />

man:<br />

Geschachtelte Tabelle mit gedehnten Zellen 97


Man nehmen eine Tabelle mit nur einem Feld<br />

und strukturiere den Text mit dem -Tag<br />

- schon hat man ein 'Hinweisschild'.<br />

Mit BORDERCOLOR läßt sich<br />

auch der Rahmen einfärben (nur MS IE).<br />

Man kann mit Tabellen noch mehr anstellen. Der folgende Screenshot beschreibt einen<br />

Datenblock, wie er bei der Datenfernübertragung oder in Netzwerken vorkommt. Auch dieses<br />

scheinbar grafische Element ist eine Tabelle.<br />

Der Quellcode lautet:<br />

<strong>Webdesign</strong><br />

<br />

<br />

Synchro-nisation<br />

Datenblock<br />

Block-sicherung<br />

Block-ende<br />

<br />

<br />

Noch ein Beispiel, das wie gemalt aussieht:<br />

Die Verbindungslinien sind Underline-Zeichen, der Rest wieder Tabellenelemente. Auch hier<br />

ist der Quelltext recht kurz:<br />

<br />

<br />

Computer<br />

___&nbsp;<br />

Modem<br />

_____&nbsp;<br />

&Ouml;ffentliches Telefonnetz<br />

_____&nbsp;<br />

Modem<br />

___&nbsp;<br />

Computer<br />

<br />

<br />

Oder wollen Sie mal ein paar Buttons ohne Grafikprogrann basteln? Bitte sehr:<br />

Nummer 1<br />

Nummer 2<br />

Nummer 3<br />

Nummer 4<br />

Geschachtelte Tabelle mit gedehnten Zellen 98


Womit wir schon bei Attributen für die einzelnen Tabellenfelder sind. Neben anderen sind im<br />

TD- oder TH-Tag wichtig:<br />

♦ WIDTH gibt die Breite des Feldes an. Hier kann entweder eine absolute Zahlenangabe<br />

in Pixel stehen oder eine prozentuale Angabe (% der Gesamtbreite).<br />

♦ HEIGHT gibt die Höhe des Feldes an (in Pixeln oder in % der Höhe des<br />

Anzeigefensters).<br />

♦ ALIGN legt fest, wie der Text des Zelleninhaltes ausgerichtet wird. Hier sind die<br />

Werte LEFT, RIGHT und CENTER möglich.<br />

♦ VALIGN legt die vertikale Ausrichtung fest. Hier sind die Werte TOP, BOTTOM oder<br />

MIDDLE möglich.<br />

♦ BGCOLOR erlaubt das Färben des Zellenhintergrundes (wie mit der Farbtabelle<br />

gezeigt wurde).<br />

Um alle Zellen einer Zeile gleich auszurichten, werden die ALIGN- oder VALIGN-Angaben<br />

im TR-Tag untergebracht. Nun ein Beispiel für die verschiedenen Möglichkeiten.<br />

Spalte 1, links Spalte 2, zentriert Spalte 3, rechts<br />

Zeile 1, TOP Feld 1,1 Feld 2,1<br />

...<br />

...<br />

Zeile 2, BOTTOM Feld 1,2<br />

Zeile 3, MIDDLE Feld 1,3<br />

Feld 3,1<br />

Feld 2,2<br />

...<br />

... Feld 3,2<br />

Feld 2,3<br />

...<br />

...<br />

Feld 3,3<br />

Spalte 1 Spalte 2<br />

Feld 1,1 Feld 2,1<br />

Feld 1,2 Feld 2,2<br />

Feld 1,3 Feld 2,3<br />

WIDTH und HEIGHT können übrigens auch im TABLE-Tag verwendet werden. Die Optionen<br />

ALIGN=LEFT oder ALIGN=RIGHT ermöglichen es, den Text links oder rechts neben der<br />

Tabelle weiterlaufen zu lassen. Mit dem Tag wird das Weiterlaufen des<br />

Textes unterhalb der Tabelle erzwungen (wie es hier mit ALIGN=LEFT gezeigt wird). Mit<br />

HSPACE=5 im Table-Tab wird etwas Abstand zum Text erzeugt.<br />

Auch Bilder lassen sich in Tabellen sauber ausrichten, wobei man den Rand wegläßt:<br />

Emotikon<br />

freundlich, aber doof<br />

<strong>Webdesign</strong><br />

Emotikon<br />

zustimmend freundlich<br />

Emotikon<br />

abweisend unfreundlich<br />

Eine weitere Möglichkeit, Tabellen zu verwenden ist die gezielte Anordnung von Elementen.<br />

Bilder lassen sich beispielsweise in Tabellen sauber ausrichten, wobei man den Rand wegläßt:<br />

Das folgende Beispiel ist nicht etwa ein einziges Bild, sondern es setzt sich aus zwei Bildern<br />

und einem Textteil zusammen.<br />

Immer zündende Ideen<br />

mit der tollen Webseite<br />

Geschachtelte Tabelle mit gedehnten Zellen 99


<strong>Webdesign</strong><br />

von den famosen Designern<br />

der Firma Dings & Bums GmbH<br />

Wenn man BORDER=1 setzt zeigt sich die Anordnung in der Tabelle (unten).<br />

Der Quelltext der Tabelle ist schon verzwickter:<br />

Immer zündende Ideen<br />

mit der tollen Webseite<br />

von den famosen Designern<br />

der Firma Dings & Bums GmbH<br />

<br />

<br />

Immer zündende Ideen<br />

mit der tollen Webseite<br />

von den famosen Designern<br />

der Firma Dings & Bums GmbH<br />

<br />

<br />

Bei älteren Netscape-Browsern kann es vorkommen, daß die Leerzeichen oder<br />

Zeilenvorschübe zwischen den einzelnen TD-Tags zu einem 1 Pixel breiten Zwischenraum<br />

führen. Wer sicher gehen will, hängt nach dem Testen alle Tags in einer langen Zeile<br />

hintereinander. Man sollte auch immer daran denken, daß die Browser zwar versuchen, aus<br />

dem HTML-Code etwas Vernünftiges zu erzeugen, aber auch dort gibt es Grenzen. Wenn die<br />

Tabellenspalten zu schmal gewählt werden, kann es vorkommen, daß Wörter willkürlich<br />

getrennt werden. Viele Konvertierprogramme geben eine Tabellenbreite in Pixeln vor, wobei<br />

der Wert abhängig von der gewählten Druckerauflösung und vom Zeichensatz berechnet wird.<br />

Hier ist auf jeden Fall Nacharbeit erforderlich.<br />

Wenn Ihre Tabelle im Browser nicht so dargestellt wird, wie Sie sich das vorgestellt haben<br />

oder wenn der Browser die Tabelle überhaupt nicht zeigt, dann gehen Sie den Quellcode<br />

durch. Meist wurde nur ein schließendes Tag vergessen oder ein öffnendes Tag zweimal<br />

hingeschrieben. Da man Tabellen ineinander schachteln darf, führt sowas den Browser in die<br />

Irre.<br />

Bilder<br />

Eine Fehlermeldung?<br />

Bilder 100


<strong>Webdesign</strong><br />

Bilder und Grafiken können auf zwei Arten in HTML-Dokumente eingebunden werden,<br />

einmal über Hyperlinks, hier wird die Grafik erst bei Anwählen des Links geladen und über<br />

ein Anzeigeprogramm dargestellt, oder als sogenanntes "inline image", hier befindet sich dir<br />

Grafik im Dokument zwischen den Textzeilen und wird direkt bei Laden des Dokumentes<br />

mitgeladen und angezeigt. Unterstützt werden derzeit die Formate GIF (.gif), JPeg (.jpg) und<br />

X Bitmap (.xbm). Über die Einbindung externer Programme läßt sich die<br />

Darstellungsfähigkeit vieler Browser erweitern. Der beim Attribut ALT angegebene Text wird<br />

ausgegeben, wenn das Bild nicht dargestellt werden soll oder kann. Gibt man 'ALT=""' an,<br />

entfällt der Hinweis '[IMAGE]' beim Textbrowser Lynx.<br />

Um den Speicherbedarf der Bilder zu reduzieren, kann man die passende Kompression<br />

wählen:<br />

♦ Bei Photos is JPEG mit einem passenden Kompressionsfaktor güstig.<br />

♦ Bei flächigen Bildern eignet sich das GIF-Format besser.<br />

♦ Wenn das Bild trotzdem zu groß ist, ein kleines Bild als Link anbringen.<br />

Der Befehl zum Einbinden von Bildern lautet<br />

<br />

♦ Bild-URL: Dies ist ein URL auf die Grafik, im einfachsten Fall ist es eine lokale<br />

Datei, es kann aber auch ein Link auf eine Grafik auf einem weit entfernten Rechner<br />

sein.<br />

♦ Textansatz: Dieser Wert gibt an, wo die dem nachfolgenden Textzeilen<br />

beginnen sollen, an der Oberkante, in der Mitte oder der Unterkante des Bildes.<br />

Mögliche Werte sind LEFT, RIGHT, TOP, MIDDLE oder BOTTOM. Diese Angabe ist<br />

optional, der voreingestellte Wert ist BOTTOM.<br />

♦ Alternativdarstellung: Gibt an, was bei nicht-grafikfähigen Browsern oder bei<br />

abgeschalteter Bilddarstellung an Stelle der Grafik gezeigt werden soll.Bei neueren<br />

Browserversionen wird der Text auch gezeigt, wenn man den Mauszeiger über die<br />

Grafik bewegt. Hier sollte in wenigen Worten erklärt werden, was das Bild darstellt.<br />

Auch diese Angabe ist optional, voreingestellt ist das Wort IMAGE. Will man keine<br />

Angabe, schreibt man ALT="".<br />

♦ Mit WIDTH und HEIGHT kann optional die Bildgröße in Pixeln angegeben werden.<br />

Das erleichtert dem Browser die Berechnung der Seitenaufteilung, da er die Bildgröße<br />

schon vor dem Laden des Bildes kennt. Die meisten Browser können auch das Bild<br />

entsprechend der Angaben vergrößern oder verkleinern. Unten einmal normal, einmal<br />

verkleinert (und fast unlesbar):<br />

♦ Die Parameter VSPACE und HSPACE geben an, wieviele Pixel Abstand zwischen<br />

Bild und umgebenden Text vertikal und horizontal frei bleiben sollen.<br />

♦ Der Parameter BORDER gibt schließlich an, wie breit der farbige Rand sein soll,<br />

wenn das Bild als Link dient. Will man keinen Rand, gibt man 0 an.<br />

Hier zweimal das gleiche Bild, einmal Originalgröße und einmal auf 150 x 70 Pixel skaliert:<br />

Eine Fehlermeldung? 101


<strong>Webdesign</strong><br />

Der Textansatz bedarf einer weiteren Erläuterung, denn die Parameterwerte LEFT und<br />

RIGHT unterscheiden sich in der Darstellung erheblich von TOP, MIDDLE und BOTTOM.<br />

Bei diesen drei Werten wird jeweils nur eine Textzeile neben dem Bild angeordnet und aller<br />

weiterer Text kommt unter das Bild. Im Browser-Fenster sieht das dann so aus:<br />

Beim Textansatz RIGHT und LEFT läuft dagegen der Text um das Bild herum, bei LEFT ist<br />

das Bild auf der linken Seite und der Text rechts, bei RIGHT umgekehrt. Man kann dies<br />

verwenden, um die Anordnung von Text und Bildern etwas aufzulockern. Man muß dabei das<br />

Bild auch nicht, wie im folgenden Beispiel, an den Textanfang setzen, sondern kann es auch<br />

mitten in den Text plazieren.<br />

Eine Fehlermeldung? 102


<strong>Webdesign</strong><br />

Wenn der Text zu knapp am Bild vorbei läuft, kann mit den Parametern VSPACE und<br />

HSPACE mehr "Luft" um das Bild geschaffen werden.<br />

Man kann die verkleinerten Bilder auch zu Hyperlinks machen und beim Anklicken dieses<br />

Vorschaubildes ('Thumbnail') dann das Bild in voller Größe zeigen. In der Regel wird man<br />

zum kleinen Bild noch die Größe des Originals dazuschreiben (z. B. 'Original 1024 x 512<br />

Pixel, 245 KByte').<br />

Grafiken können also auch innerhalb von Links verwendet werden, so daß ein Anwählen der<br />

Grafik zu einem neuen Dokument führt. Dies wird folgendermaßen realisiert:<br />

Click Me!<br />

Eine Fehlermeldung? 103


Hier sind sowohl das Wort "Click!" als auch die Grafik sensitiv. Die Grafil erhät in diesem<br />

Fall eine farbige Umrandung in der Farbe, die auch für den Linktext verwendet wird (links<br />

unten). Will man dies nicht, fügt man dem IMG-Tag die Option BORDER=0 hinzu (rechts<br />

unten).<br />

Ein Beispiel:<br />

Click Me! Click Me!<br />

Man sollte mit eingebundenen Grafiken sorgfältig umgehen. Insbesondere bei sehr langsamen<br />

Übertragungsleitungen sind lange Ladezeiten für Bilder ein Ärgernis. Viele Browser geben<br />

dem Benutzer auch die Möglichkeit, das automatische Laden von eingebundenen Grafiken<br />

auszuschalten und diese erst auf Wunsch anzuzeigen. Mehr zu Grafiken später.<br />

Aufzählungen<br />

Man kann eine Aufzählung statt mit auch mit Bildern als Aufzählungpunkte anlegen.<br />

Rot ist die Liebe ...<br />

Grün ist die Hoffnung ...<br />

Blau hab' ich vergessen ....<br />

Der Trick mit dem blinden GIF<br />

Bildbeschreibung<br />

Will man wirklich mehr Text neben einem Bild<br />

stehen haben und diesen Text auch genau plazieren,<br />

dann kann man zu einem kleinen Trick greifen. Man<br />

bastelt eine Tabelle, die nur eine Zeile und zwei<br />

Spalten besitzt. Das Bild kommt in die eine Spalte,<br />

der Text in die andere.<br />

Um Satzgestaltung zu erreichen, z. B. den Einzug bei der ersten Zeile, positioniert man ein<br />

transparentes GIF-Bild der Größe 1 x 1 Pixeln vor den Text und gibt ihm mit WIDTH und<br />

HEIGHT die entsprechende Größe. Auch, um die Abstände zwischen Absätzen zu steuern,<br />

kann man das blinde GIF verwenden:<br />

Bilder kann man auch als Links verwenden. Wer kein 'klickbares Bild' verwenden will,<br />

kann auch Einzelbilder nebeneinander plazieren, es darf dann aber kein Zeilenwechsel<br />

zwischen den Bildern vorkommmen, sonst gibt es bei einigen Browsern eine Lücke. Durch<br />

die Angabe von 'BORDER=0' wird der bei Links sonst übliche farbige Rand unterdrückt.<br />

Hintergrund-Bilder<br />

<strong>Webdesign</strong><br />

Eine weitere Anwendung von Bildern ist das Einbinden eines Hintergrundes. Dies geschieht<br />

durch den Parameter BACKGROUND="Bilder-Url" im BODY-Tag.<br />

Aufzählungen 104


<strong>Webdesign</strong><br />

.... &gt><br />

Der Hintergrund wird durch ein Bild ersetzt, das durch die URL spezifiziert wird. Das Bild<br />

wird 'gekachelt', d. h. auf die Ausdehnung des Fensters neben- und untereinander wiederholt.<br />

Das kann dazu führen, daß bei der typischen Windows-Darstellung von 600 x 800 Pixeln das<br />

Hintergrundbild nur einmal erscheint, aber auf der Workstation mit hoher Auflösung<br />

mehrfach.<br />

Das Hintergrundbild muß übrigens nicht groß sein, 8 Pixel hoch und 3000 Pixel ist ein guter<br />

Wert (die Breite reicht auch für Workstations aus). Wichtig ist jedoch, daß der Hintergrund<br />

nicht zu aufdringlich ist und die Lesbarkeit des Textes verschlechtert.<br />

Man kann aber auch einen Hintergrund so gestalten, daß sich das Bild gut kacheln läßt, oberer<br />

und unterer bzw. rechter und linker Rand müssen dann genau zueinander passen. Man erhält<br />

so einen Textur-Effekt. Nebenbei: Das Hintergrundbild bei Windows macht es genauso.<br />

Wichtig ist, daß man trotz Hintergrundbild auch die Hintergrundfarbe festlegt - und zwar im<br />

Farbton des Hintergrundbildes. Der Browser baut nämlich zuerst einen leeren Schirm in der<br />

Standard-Hintergrundfarbe auf. Dann wird der Hintergrund gemäß der Hintergrundfarbe im<br />

BODY-Tag eingefärbt. Das Hintergrundbild kommt meist erst viel später. Wenn der<br />

Hintergrund schon passend gefärbt ist, erscheint der Übergang sanfter.<br />

Frames<br />

Mit Hilfe von Frames können Sie den Anzeigebereich des Browsers in verschiedene, frei<br />

definierbare Segmente (gewissermaßen einzelne 'Fenster') aufteilen. Jedes Segment, 'Frame'<br />

genannt, kann eigene Inhalte enthalten. Die einzelnen Frames können wahlweise einen<br />

statischen Inhalt (non SCROLLING regions) oder einen wechselnden Inhalt haben. Links in<br />

einem Frame können Dateien aufrufen, die dann in einem anderen Frame angezeigt werden.<br />

Frames werden ab Netscape 2.0 und ab MS Internet Explorer 3.0 unterstützt.<br />

Frames stellen an das Design von HTML-Seiten besonders hohe Ansprüche. Einige Tips, die<br />

Sie beachten sollten, finden Sie weiter unten. Das Frame-Konzept erlaubt<br />

Hypertext-Funktionalitäten, die bislang nur mit Hilfe professioneller Hypertext-Systeme<br />

realisierbar waren. In jedem Frame stehen alle Anzeige-Features zur Verfügung - so ist es z.<br />

B. denkbar, in einem Frame Textinformation anzuzeigen, während in einem anderen Frame<br />

gleichzeitig ein passendes Video abläuft.<br />

Mit Frames in Verbindung mit Formularen können Sie anwenderfreundliche<br />

Bedien-Oberflächen realisieren. So können Sie z. B. in einem linken Frame ein Formular für<br />

Sucheingaben zur Verfügung stellen, während rechts daneben in einem anderen Frame die<br />

jeweils aktuellen Suchergebnisse präsentiert werden.<br />

Frames bergen aber auch Gefahren. Unüberlegte Anwendung von Frames kann den Anwender<br />

mehr verwirren als ihm zu helfen. Oft wird der Bildschirm mit Frames überladen und die<br />

einzelnen Fenster dadurch sehr klein. Oder einzelne Frames werden überhaupt nicht genutzt.<br />

Ein gewichtiger Nachteil ist, daß man Seiten, die in einem Frame dargestellt werden, nicht in<br />

die 'Bookmarks' aufnehmen kann. Daran sollte man denken, wenn man eine tief verschachtelte<br />

Hierarchie von Seiten in einem Frame darstellt.<br />

Frame-Sets definieren Mehrere zusammengehörige Frames<br />

bilden ein Frame-Set. Ein Frame-Set definieren Sie anstelle<br />

des herkömmlichen BODY-Tags. Wenn Sie in einer HTML-Datei<br />

Hintergrund-Bilder 105


ein Frame-Set definieren, sieht das Grundgerüst der Datei<br />

folgendermaßen aus:<br />

<br />

<br />

Frame-Test<br />

<br />

<br />

... Frame-Definitionen ...<br />

<br />

<br />

♦ leitet die Definition eines Frame-Sets ein. Dahinter folgen die<br />

Definitionen der einzelnen Frames.<br />

♦ schließt die Definition des Frame-Sets ab.<br />

Anzeigefenster aufsplitten mit Frame-Sets<br />

Beim Definieren von Frame-Sets bestimmen Sie auch, wie das Anzeigefenster aufgeteilt<br />

werden soll. Dabei müssen Sie sich das Anzeigefenster wie den leeren Rahmen einer Tabelle<br />

vorstellen. Damit die Tabelle Gestalt annimmt, müssen Sie Zeilen und Spalten definieren. Die<br />

Definition der Zeilen und Spalten erfolgt bei der Definition der Frame-Sets. Was in den<br />

einzelnen Zellen (Frames) stehen soll, geben Sie bei der Definition der einzelnen Frames an.<br />

Zum Beispiel:<br />

<br />

Erzeugt zwei Frames, deren Inhalt hier festgelegt wird...<br />

<br />

Beispiel 2:<br />

<br />

Erzeugt zwei Frames, deren Inhalt hier festgelegt wird...<br />

<br />

Beispiel 3:<br />

<strong>Webdesign</strong><br />

<br />

Erzeugt zwei Frames, deren Inhalt hier festgelegt wird...<br />

<br />

Frame-Sets definieren Mehrere zusammengehörige Framesbilden ein Frame-Set. Ein Frame-Set 106<br />

definieren


Erzeugt nochmal zwei Frames, deren Inhalt hier festgelegt wird...<br />

<br />

<br />

Durch die Angabe ROWS=x% im einleitenden Frameset-Tag bestimmen Sie die "Zeilen" und<br />

deren Höhen. Die Höhenangaben der einzelnen Zeilen trennen Sie durch Kommata. Anstelle<br />

der Prozentangaben können Sie auch absolute Zahlenwerte (in Pixel) benutzen, z.B.<br />

ROWS="120,520". Im Zusammenhang mit absoluten Zahlenwerten können Sie auch einen<br />

'*' als Wildcard verwenden. So bewirkt beispielsweise ROWS="120,*,120" ein Set, das<br />

aus drei Zeilen für Frames besteht, wobei die erste und die letzte Zeile jeweils 120 Pixel hoch<br />

sind (z. B. für Kopf- und Fußzeilen). Die Höhe der mittleren Zeile ist durch einen Stern<br />

markiert und somit variabel. Sie ist durch die Größe des Anzeigefensters beim Anwender<br />

bestimmt.<br />

Durch die Angabe COLS=x% im einleitenden Frameset-Tag bestimmen Sie die "Spalten" und<br />

deren Breiten. Hierbei gelten die gleichen Regeln wie bei den "Zeilen".<br />

Alle Angaben hinter ROWS= und COLS= müssen in Anführungszeichen stehen.<br />

Wenn Sie Anordnungen wie in Beispiel 3 erreichen wollen, müssen Sie mehrere,<br />

verschachtelte Frame-Sets definieren. Gehen Sie dabei hierarchisch vor. In Beispiel 3 besteht<br />

die erwünschte Gesamtanordnung zunächst einmal aus zwei Spalten. Daß die rechte Spalte<br />

nochmals unterteilt werden soll, ist zunächst nicht wichtig. Sie definieren in diesem Fall<br />

zuerst ein Frame-Set mit zwei Spalten, im . Da Ihre<br />

gedachte Tabelle in der rechten Spalte in zwei Zeilen unterteilt werden soll, brauchen Sie im<br />

nächsten Schritt Angaben zu den Zeilen. Die rechte Spalte, die in Beispiel 3 zwei Zeilen<br />

enthalten soll, definieren Sie durch die entsprechenden Angabe .<br />

Frames definieren<br />

Nachdem Sie durch die Definition von Frame-Sets geeignete Segmente des Anzeigefensters<br />

bestimmt haben, geben Sie mit der Definition der Frames an, was in den einzelnen Segmenten<br />

angezeigt werden soll. Ferner können Sie verschiedene Eigenschaften für die Segmente<br />

bestimmen. Zum Beispiel:<br />

<br />

<br />

Frame-Test<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>Webdesign</strong><br />

Anzeigefenster aufsplitten mit Frame-Sets 107


Mit "Dateiname" definieren Sie innerhalb eines Frame-Sets den Inhalt der<br />

zugehörigen Frames. Bei der Adressierung der Dateien, die in einem Frame angezeigt werden<br />

sollen, gelten die gleichen Regeln wie bei der Referenzierung von Grafiken. Definieren Sie für<br />

jede "Zelle" Ihrer gedachten Tabelle einen Frame.<br />

Wenn Sie zu Beginn noch keinen Inhalt in einem Frame anzeigen wollen, lassen Sie die<br />

Angabe SRC= einfach weg und schreiben ein nacktes . Wenn Sie einen Frame ganz<br />

leer lassen wollen, schreiben Sie anstelle von einfach .<br />

Eigenschaften von Frames definieren<br />

Jeder Frame wird, abhängig von der verwendeten Benutzeroberfläche des Anwenders, in<br />

einem eigenen Fenster angezeigt. Solche Fenster können verschiedene Eigenschaften haben:<br />

sie können Scroll-Leisten haben oder nicht, und sie können einen Mindestabstand zwischen<br />

Fensterrahmen und Fensterinhalt haben.<br />

Scrollbare/nicht scrollbare Fenster<br />

<br />

<br />

<br />

<br />

Durch die Angabe SCROLLING=yes im Definitions-Tag eines Frames legen Sie fest, daß<br />

das Anzeigefenster des Frames in jedem Fall Scroll-Leisten besitzt. Durch die Angabe<br />

SCROLLING=no verhindern Sie dies. Wenn Sie das Scrollen des Fensterinhalts verhindern,<br />

können Inhalte, die größer sind als das Fenster, nicht vollständig angezeigt werden.<br />

Mindestabstände zwischen Fensterrand und Fensterinhalt<br />

<br />

<br />

<br />

<br />

Durch die Angabe MARGINWIDTH=x (Pixel) im Definitions-Tag eines Frames bestimmen<br />

Sie den Abstand zwischen rechtem bzw. linkem Fensterrand und dem Fensterinhalt. Durch die<br />

Angabe MARGINHEIGHT=x (Pixel) bestimmen Sie den Abstand zwischen oberem bzw.<br />

unterem Fensterrand und dem Fensterinhalt.<br />

Unveränderbare Fenstergröße<br />

<strong>Webdesign</strong><br />

Frame-Fenster sind normale Dokument-Fenster innerhalb des Browser-Hauptfensters. Solche<br />

Dokument-Fenster kann der Anwender normalerweise in der Größe verändern. Sie können<br />

dies aus "regietechnischen" Gründen verhindern.<br />

Frames definieren 108


<br />

<br />

<br />

Durch die Angabe NORESIZE im Definitions-Tag eines Frames verhindern Sie, daß der<br />

Anwender die Größe des Frame-Fensters verändern kann. Es genügt, die Angabe bei einem<br />

Frame zu schreiben. Benachbarte Frames können dann auch nicht bewegt werden.<br />

Rahmendicke bzw. unsichtbare Fensterrahmen<br />

MS Internet Explorer und Netscape unterstützen beide ab Version 3.0 Frames ohne sichtbare<br />

Fensterrahmen oder mit frei bestimmbarer Rahmendicke. Bei unsichtbaren Fensterrahmen<br />

wirken die Frame-Fenster wie nahtlos aneinander gefügte Flächen am Bildschirm.<br />

<br />

<br />

<br />

<br />

Wenn Sie im einleitenden -Tag die Zusatzangabe FRAMEBORDER=0<br />

schreiben, wird das gesamte Frame-Set ohne sichtbare Rahmen angezeigt. Nur erforderliche<br />

oder gewünschte Scroll-Leisten werden angezeigt. Wenn Sie in einem einleitenden<br />

-Tag die Zusatzangabe FRAMEBORDER=0 schreiben, wird bei diesem<br />

Frame-Fenster der sichtbare Rahmen unterdrückt.<br />

Wenn Sie bei FRAMEBORDER= eine Zahl größer Null angeben, bestimmen Sie die<br />

Rahmendicke in Pixeln. Mit FRAMEBORDER=10 definieren Sie also beispielsweise eine<br />

Rahmendicke von 10 Pixeln.<br />

Namen von Frames definieren<br />

Frames können Namen erhalten. Einen benannten Frame können Sie dann in Links<br />

adressieren, d. h. Sie können beim Link angeben, daß das Linkziel in einem bestimmten<br />

(benannten) Frame angezeigt werden soll.<br />

<br />

<br />

<br />

<br />

Durch die Angabe NAME= "Fenstername" im Definitions-Tag eines Frames weisen Sie dem<br />

Frame einen Namen zu. In Links können Sie diesen Frame unter dem vergebenen Namen<br />

adressieren. Fensternamen müssen in Anführungszeichen stehen, dürfen nicht zu lang sein und<br />

nur aus Buchstaben, Ziffern und dem Unterstrichen bestehen. Bei selbst vergebenen Namen<br />

darf das erste Zeichen des Namens kein Unterstrich sein.<br />

Reservierte Fensternamen<br />

<strong>Webdesign</strong><br />

Folgende reservierte Fensternamen haben bei Links eine spezielle Bedeutung:<br />

_blank: Das Linkziel wird in einem neuen Fenster angezeigt.<br />

Eigenschaften von Frames definieren 109


_self: Das Linkziel wird im gleichen Fenster angezeigt wie der Link.<br />

_parent: Das Linkziel wird im übergeordneten Fenster angezeigt. Falls es kein<br />

übergeordnetes Fenster gibt, wird das Linkziel im gleichen Fenster angezeigt wie der Link<br />

selbst.<br />

_top: Das Linkziel wird im ersten Fenster einer Fensterhierarchie angezeigt. Falls es kein<br />

übergeordnetes Fenster gibt, wird das Linkziel im gleichen Fenster angezeigt wie der Link<br />

selbst.<br />

Links zu anderen Frames schreiben<br />

<strong>Webdesign</strong><br />

Sie können bei Links zu anderen Dateien festlegen, daß die adressierte Datei in einem<br />

bestimmten Frame angezeigt wird.<br />

Link zum rechten Fenster<br />

Zur Adressierung eines Frames in einem Link schreiben Sie einen gewöhnlichen<br />

Hyperlink-Befehl. Im einleitenden Tag schreiben Sie jedoch die zusätzliche Angabe<br />

TARGET=Frame-Fenster-Name. Der Name des Fensters muß in Anführungszeichen<br />

stehen. Sie können hinter TARGET= sowohl selbst definierte Fenster als auch reservierte<br />

Fensternamen angeben.<br />

Alle Links einer Datei in einem anderen Frame anzeigen<br />

Sie können in einer HTML-Datei angeben, daß alle darin enthaltenen Links zu einem<br />

bestimmten anderen Frame-Fenster führen. So müssen Sie nicht bei jedem Link die gleiche<br />

Frame-Adressierung mit angeben. Besonders sinnvoll ist dies, wenn Sie z. B. ein Fenster mit<br />

sehr vielen Links haben, deren Linkziele in einem anderen Fenster angezeigt werden sollen.<br />

<br />

<br />

....<br />

<br />

Das voreingestellte Frame-Fenster für Links können Sie im Dateikopf einer HTML-Datei<br />

bestimmen. Dazu müssen Sie zwischen und die Anweisung schreiben. Hinter TARGET= folgt der Name des gewünschten<br />

Frame-Fensters. Der Name des Fensters muß in Anführungszeichen stehen.<br />

Links, die das Frame-Set beenden<br />

Sie können bei Links zu anderen Dateien festlegen, daß das aktuelle Frame-Set dabei beendet<br />

wird. Das Linkziel wird wieder in dem Fensterzustand angezeigt, der vor der Definition des<br />

Frame-Sets aktuell war.<br />

Frames-Set beenden<br />

Durch die Zusatzangabe TARGET="_parent" wird das Frame-Set beim Anklicken des<br />

Linkss beendet. Schreiben Sie die Zusatzangabe so wie hier angegeben, also mit dem<br />

Namen von Frames definieren 110


führenden Unterstrich.<br />

<strong>Webdesign</strong><br />

Wenn Sie beim Internet Explorer (IE) im einleitenden FRAMESET-Tag die Zusatzangabe<br />

FRAMEBORDER=NO schreiben, wird das gesamte Frame-Set ohne sichtbare Rahmen<br />

dargestellt (Gegenteil: FRAMEBORDER=YES). Nur erforderliche oder gewünschte<br />

Scroll-Leisten werden angezeigt. Bei Netscape Navigator (NN) wird die Rahmendicke mit<br />

BORDER=nn festgelegt, hier vermeidet man den Rand also durch BORDER=0. Will man zu<br />

beiden Browsern kompatibel bleiben, muß man beide Parameter aufnehmen. Weitere<br />

Parameter für Framesets sind FRAMESPACING=nn zur Festlegung des Rahmenabstandes<br />

beim IE und BORDERCOLOR="#rrggbb" für die Rahmenfarbe.<br />

Bei den Frames selbst gibt es auch einige Parameter:<br />

♦ FRAMEBORDER: Bei einem Wert von 0 wird der sichtbare Rahmen unterdrückt.<br />

Wenn Sie bei FRAMEBORDER eine Zahl größer Null angeben, bestimmen Sie die<br />

Rahmendicke in Pixeln.<br />

♦ SCROLLING: Hier können als Werte YES (immer ein Scrollbar am Frame), NO<br />

(kein Scrollbar) und AUTO (Scrollbar nach Bedarf) auftreten. Günstig ist der Wert<br />

AUTO.<br />

♦ MARGINWIDTH: Angabe der Breite des linken und rechten Randes in Pixeln.<br />

♦ MARGINHEIGHT: Angabe der Breite des oberen und unteren Randes in Pixeln.<br />

♦ NORESIZE: Verbietet das Ändern der Fenstergröße. Sonst kann man die Maus auf<br />

den Rand eines Frames positionieren und den Rand verschieben.<br />

♦ SRC: Url der darzustellenden Webseite oder Datei.<br />

♦ NAME: Namen des Frames (um mit TARGET darauf Bezug nehmen zu können).<br />

Sinnvolle Einsatzmöglichkeiten für Frames<br />

Frames sind ein Werkzeug, mit dem man viel verkehrt machen kann. Generell gilt: jeder<br />

Einsatz von Frames muß gerechtfertigt sein. Das bedeutet: die Verwendung der<br />

Frame-Technik muß dem Anwender als sinnvoll und vorteilhaft erscheinen. Wer Frames aus<br />

purem Selbstzweck einsetzt, muß damit rechnen, als technikverliebter HTML-Novize statt als<br />

souveräner Web-Designer betrachtet zu werden.<br />

Der Grund dafür sind nicht wegzudiskutierende Nachteile von Frames:<br />

nicht Frame-fähige Browser:<br />

Frames werden nicht von allen WWW-Browsern angezeigt. Da die gesamte Struktur<br />

eines auf Frames basierenden Projekts von der Struktur herkömmlicher Projekte<br />

entscheidend abweicht, kann ein Anbieter von Frames solchen Anwendern, die keine<br />

Frames anzeigen können, entweder gar keine Alternative anbieten, oder eine<br />

"zweigleisige" Alternative, die sehr aufwendig zu realisieren und zu pflegen ist.<br />

Bildschirmauflösung:<br />

Bei kleineren Bildschirmen, z. B. bei 14-Zoll-Monitoren mit einer<br />

Bildschirmauflösung von 640 x 480 Pixeln, sind mehr als zwei Frame-Fenster bereits<br />

eine Zumutung fürs Auge und die Übersicht.<br />

Speicherbedarf und Ladezeiten:<br />

Frames verlangen in der Regel mehr Arbeitsspeicher, da mehrere WWW-Seiten<br />

inclusive HTML- und zugehörigen Grafikdateien gleichzeitig geladen werden<br />

müssen. Im WWW kann es unter ungünstigen Verhältnissen auch leichter zu<br />

unzumutbaren Ladezeiten kommen.<br />

In folgenden Fällen ist der Einsatz von Frames für den Anwender am ehesten nachvollziehbar:<br />

schnelles Wechseln zwischen Informationseinheiten<br />

Links, die das Frame-Set beenden 111


In diesem Fall enthält ein Frame-Fenster ein umfangreiches Verzeichnis mit<br />

anklickbaren Links auf einzelne Informationsseiten, die in einem anderen, festen<br />

Frame-Fenster angezeigt werden. Das "Inhaltsverzeichnis" bleibt also jederzeit<br />

eingeblendet, und der Anwender kann zu jedem Zeitpunkt einen neuen Link daraus<br />

auswählen.<br />

zum ständigen Einblenden projektglobaler Steuerverweise<br />

Bei umfangreichen Projekten, in denen dem Anwender das Gefühl des "lost in<br />

hyperspace" droht, ist es sinnvoll, in einem separaten Frame-Fenster immer gültige<br />

Steuerverweise anzubieten, z.B. zur Homepage, zur nächsthöheren logischen Ebene,<br />

zum Stichwortverzeichnis oder zur Suchdatenbank. Bei kleinen Projekten, die nur aus<br />

einer Handvoll Seiten bestehen, wirkt diese Technik dagegen übertrieben und<br />

vermittelt dem Anwender eine falsche Vorstellung von der Größe des Projekts.<br />

zum gleichzeitigen Anzeigen von zu vergleichenden Informationen<br />

Hypertext bedeutet nicht nur, dem Anwender per Mausklick weitere Information zur<br />

Verfügung zu stellen, sondern auch, dem Anwender die Möglichkeit zu bieten, sich<br />

selbst Information so zusammenzustellen, daß er sie optimal miteinander vergleichen<br />

und daraus Schlüsse oder Entscheidungen ableiten kann. Zu diesem Zweck eignet sich<br />

die Frame-Technik hervorragend, da sie es erlaubt, verschiedene, getrennt<br />

voneinander gespeicherte Information auf Anwenderwunsch gleichzeitig anzuzeigen.<br />

bei besonders kunstvoller Seitengestaltung<br />

In diesem Fall muß der Anwender auf den ersten Blick erkennen können, daß die<br />

Frame-Technik eine bestimmte künstlerische Aussage unterstützen soll. Das kann<br />

aber auch voll in die Hose gehen.<br />

Schaufenster-Effekte<br />

<strong>Webdesign</strong><br />

Mit Hilfe von Frames ist es auch möglich, fremde WWW-Seiten innerhalb eines<br />

Frame-Fensters im eigenen Web-Angebot darzustellen. Dies ist jedoch sehr problematisch<br />

und in den meisten Fällen unfair. Denn auf diese Weise verkommen fremde WWW-Seiten zu<br />

"Schaufenstern" innerhalb des eigenen Web-Projekts. Das ist eine unfeine Geste gegenüber<br />

den Fremdanbietern, weil es das eigene Web-Projekt in den Augen des Anwenders als<br />

"Mega-Projekt" erscheinen läßt. So kann es auch passieren, daß in einem Frame-Fenster eine<br />

Fremdanbieter-Seite angezeigt wird, die ihrerseits Frames einsetzt. So kommt es zu einem<br />

ärgerlichen Effekt von massenhaft Frame-Fenstern auf dem Bildschirm des Anwenders.<br />

Wenn Sie innerhalb eines Frame-Projekts auf fremde Seiten verweisen, sollten Sie eine der<br />

folgenden Möglichkeiten wählen:<br />

Ursprünglichen Fensterzustand wiederherstellen<br />

Setzen Sie den Link so, daß der Anwender Ihr definiertes Frame-Set verläßt und<br />

wieder den Fensterzustand erhält, den er vor Aufruf Ihres Projekts hatte. Dies<br />

erreichen Sie durch Links von der Art Linktext<br />

Doppelverweis anbieten<br />

Damit überlassen Sie dem Anwender die Entscheidung, wie er die fremde Seite<br />

angezeigt bekommen will. Schreiben Sie zwei Links direkt unter- oder nebeneinander,<br />

die das gleiche Ziel haben, etwa in der Weise:<br />

Fremde Seite im Frame<br />

rechts unten anzeigen<br />

Fremde Seite voll<br />

anzeigen<br />

Anwender auf Möglichkeit zum Verändern der Frames hinweisen<br />

Wenn Sie keine der beiden anderen Möglichkeiten anbieten wollen, sollten Sie<br />

wenigstens das Verändern der Frame-Fenstergrößen durch den Anwender erlauben<br />

Sinnvolle Einsatzmöglichkeiten für Frames 112


und den Anwender auf diese Möglichkeit explizit hinweisen.<br />

Frames und Gestaltung<br />

<strong>Webdesign</strong><br />

Mindestens ein Frame-Fenster sollte einen unveränderbaren Inhalt haben. Wenn Sie etwa mit<br />

zwei Frame-Fenstern arbeiten, sollte das eine davon konstant eingeblendete Links und das<br />

andere die variabel anzuzeigenden Linkziele enthalten. Wenn Sie drei Frame-Fenster<br />

einsetzen, sollte ein Fenster eine konstante Leiste mit wichtigen, projektsteuernden<br />

Navigationsverweisen enthalten. Vor allem bei umfangreichen Projekten ist es wichtig, dem<br />

Anwender so eine Steuerleiste bieten, auf die er sich verlassen kann. Dadurch wird er eher<br />

ermutigt, sich in die Tiefen des Projekts zu begeben.<br />

Eine normale WWW-Seite mit Hintergrundbild und Grafiken, enthält schon genug Tücken,<br />

wenn es um ästhetische Optimierung geht. Wenn Sie in einem Frame-Set zwei, drei oder vier<br />

WWW-Seiten gleichzeitig anzeigen und so zu einer verbinden, wird die ästhetische Kontrolle<br />

des Bildschirmgeschehens entsprechend schwieriger. Wenn Sie Frames verwenden, ist es<br />

noch wichtiger als bei "einzelnen" WWW-Seiten, auf ein einheitliches, nachvollziehbares<br />

Design und eine klare Farbgestaltung zu achten. Denn beim Einsatz von Frames wissen Sie<br />

vorher nie, welche Dateien der Anwender gleichzeitig am Bildschirm anzeigt. Deshalb<br />

müssen Sie Ihr Projekt so gestalten, daß jede denkbare Anzeigekombination am Bildschirm<br />

gut aussieht. Farben sollten, wenn sie unterschiedlich sind, entweder miteinander harmonieren<br />

oder kontrastieren. Bedenken Sie auch, daß es bei mehreren Dateien, deren Farbgebung und<br />

Grafiken unterschiedliche Farbpaletten verwenden, durch Dithering zu unerwünschten<br />

Darstellungseffekten kommen kann.<br />

Schaufenster-Effekte 113


Üble Tricks<br />

Wird folgender Frame angeboten, dann öffnet sich automatisch ein Fenster, das zum<br />

Speichern einer Datei auffordert (in diesem Fall die lokale(!) Datei "notepad.exe",<br />

normalerweise aber ein Programm auf dem Server des Anbieters. Sitmmt der unbedarfte<br />

Benutzer zu, hat er sich eventuell ein Torpedo auf die Platte geladen.<br />

<br />

Just Click YES<br />

<br />

<br />

<br />

<br />

<br />

Sie können das ja mal ausprobieren.<br />

Zum Schluss ein komplettes Frame-Beispiel.<br />

Inline Frames<br />

<strong>Webdesign</strong><br />

Ein Inlineframe (iframe) verhält sich ähnlich wie ein Frame. Auch der Inlineframe wird<br />

verwendet, um andere Webinhalte als selbständige Dokumente in einem definierten Bereich<br />

des Browsers anzuzeigen - häufig, um Werbung oder Inhalte anderer Anbieter in eine<br />

Webseite einzubinden. Bei der Gestaltung von Inlineframes wird diesen entweder eine<br />

absolute Größe (in Pixeln) oder eine relative Größe im Verhältnis des Browserfensters<br />

zugewiesen. Auch dadurch unterscheiden sie sich von normalen Frames, die vom Benutzer in<br />

der Regel vergrößert oder verkleinert werden können.<br />

Von Vorteil dabei ist, dass nur auf die Maße, nicht aber auf die Frame-Inhalte Rücksicht<br />

genommen werden muss. Das ist ein großes Plus gegenüber normalen Frames, die meist<br />

eingesetzt werden, um die Inhalte einer einzigen Webseite logisch strukturiert darzustellen.<br />

Ein Inlineframe ermöglicht das parallele Laden der Inhalte. So kann die umgebende Seite<br />

bereits dargestellt werden, während der Frame-Inhalt noch geladen wird. Ein als Inlineframe<br />

eingebundenes Dokument verhält sich ähnlich wie eine Abbildung und kann zusammen mit<br />

dem umgebenden Text gescrollt werden. Außerdem können Inlineframes auch eigene<br />

Scrollbalken aufweisen, wenn es die Größe des ein-gebetteten Dokuments erfordert.<br />

Die Nachteile sind bei Inlineframes die Gleichen wie bei konventionellen Frames. Besitzt die<br />

per Inlineframe eingebundene Seite eine eigene Navigation und nutzt der Besucher der<br />

umgebenden Seite diese, ist es ihm nicht möglich, eine im Inlineframe angezeigte Seite direkt<br />

in seinen Lesezeichen abzulegen, da ein Browser lediglich das umgebende, also das<br />

übergeordnete Dokument in den Lesezeichen speichern kann.<br />

Ein weiterer Nachteil ist, dass der Besucher nicht mehr erkennen kann, wann er das<br />

Inhaltsangebot der einen Seite verlässt und das einer anderen betritt. Durch den Inli-neframe<br />

kann der Betreiber einer Internetseite dem Benutzer gegenüber das Gefühl vermitteln, dass die<br />

Inhalte aus eigener Quelle stammen. Auch werden sie auch schon eingesetzt, um<br />

Schadprogramme in Webseiten einzuschleusen. (siehe auch oben: "Schaufenster-Effekt"):<br />

Um einen Inlineframe einzubinden, wird das "iframe"-Element verwendet:<br />

Alternativtex<br />

Dies definiert einen Inlineframe in der angegebenen Größe, in dem die Datei aus der URI im<br />

Üble Tricks 114


<strong>Webdesign</strong><br />

src-Attribut geladen wird. Der Name des Inlineframes kann im name-Attribut frei gewählt<br />

werden. Über ihn kann der Inlineframe später bei Verlinkungen und in<br />

JavaScript-Programmen gezielt angesprochen werden. Browser, die keine Inlineframes<br />

darstellen, sollen stattdessen den Alternativtext anzeigen. Breite und Höhe des einge-betteten<br />

Frame-Fensters sollten immer angegeben werden, so wie das Beispiel oben zeigt. Erlaubt sind<br />

Pixelangaben oder Prozentwerte, die sich auf die Größe des Eltern-elements beziehen.<br />

Zwischen dem einleitenden und dem schließenden werden Inhalte<br />

gesetzt, die von Web-Browsern angezeigt werden, die den eingebetteten Frame nicht<br />

interpretieren.<br />

Sie können verschiedene weitere Eigenschaften definieren, um ein eingebettetes<br />

Frame-Fenster zur Umgebung auszurichten. Das Beispiel zeigt, wie Sie ein eingebettetes<br />

Frame-Fenster dazu verwenden können, um eine größere Grafik anzuzeigen und diese mit<br />

eigenen Scrollbars auszustatten (man kann die Grafik durch Anklicken vergrößert darstellen.<br />

Mit align="left" richten Sie den eingebetteten Frame links aus. Nachfolgende Inhalte fließen<br />

dann rechts um den Frame. Mit align="right" richten Sie den eingebetteten Frame rechts aus<br />

und die Inhalte fließen links um den Frame. Mit scrolling="yes" können Sie Scrollbars<br />

(Bildlaufleisten) in dem eingebetteten Frame erzwingen (das Gegenteil ist scrolling="no").<br />

Die Voreinstellung ist scrolling="auto". Mit frameborder="0" können Sie den sichtbaren<br />

Außenrahmen des eingebetteten Frames unterdrücken. Voreinstellung ist frameborder="1".<br />

<br />

<br />

Eigenschaften eingebetteter Frames<br />

<br />

<br />

Bild mit Scrollbars und Rand<br />

<br />

Ihr Browser kann leider keine eingebetteten Frames<br />

anzeigen:<br />

<br />

<br />

Dieses Bild zeigt zufällig angeornete Stifte verschie-dener Farben.<br />

Es ist 232 x 213 Pixel groß, der iframe ist mit 200 x 150 Pixeln kleiner.<br />

Dieser Text hat überhaupt keinen Zweck, sondern soll nur den freien<br />

Platz füllen. Der iframe ist gut erkennbar.<br />

<br />

Bild OHNE Scrollbars und Rand<br />

<br />

Ihr Browser kann leider keine eingebetteten Frames<br />

anzeigen:<br />

<br />

<br />

Dieses Bild zeigt zufällig angeornete Stifte verschiedener Farben.<br />

Es ist 232 x 213 Pixel groß, der iframe ist etwas größer. Dieser Text hat<br />

überhaupt keinen Zeweck, sondern soll nur den freien Platz füllen. Hier<br />

kann man den iframe nicht als solchen erkennen.<br />

<br />

<br />

Inline Frames 115


<strong>Webdesign</strong><br />

CSS Style-Sheets<br />

HTML ist eine "logische" Sprache. Mit HTML definieren Sie den grundsätzlichen Aufbau<br />

Ihrer Webseiten, die Elemente, die Strukturen, die Verweise, die referenzierten Elemente wie<br />

Grafiken, Multimedia usw. Aber HTML ist nicht dazu gedacht, um exakt anzugeben, wie ein<br />

Element genau aussehen soll. So können Sie in HTML eine Überschrift definieren und dabei<br />

angeben, dass es sich um eine Überschrift erster Ordnung handeln soll. Sie können innerhalb<br />

von HTML aber nicht bestimmen, wie groß, in welcher Schriftart usw. die Überschrift<br />

dargestellt werden soll. Das übernimmt der Browser bei der Anzeige.<br />

Zur Beschreibung des exakten Layouts von Dokumenten gibt es die CSS (Cascading Style<br />

Sheets). Dabei handelt es sich um eine Ergänzungssprache, die sich nahtlos in HTML einfügt<br />

und die das beliebige Formatieren einzelner HTML-Elemente erlaubt. Mit Hilfe von CSS<br />

können Sie beispielsweise festlegen, dass alle Überschriften erster Ordnung 24 Punkte groß<br />

sind, in roter Helvetica-Schrift, mit einem Nachabstand von 16 Punkten und mit einer grünen<br />

doppelten Rahmenlinie oberhalb dargestellt werden. Das ist aber nur der Anfang. CSS bietet<br />

noch viel mehr Möglichkeiten. So können Sie beliebige ausgewählte Bereiche einer<br />

HTML-Datei mit einer eigenen Hintergrundfarbe, einem eigenen Hintergrundbild oder mit<br />

diversen Rahmen versehen. Sie können beliebige Elemente, sei es eine Grafik, ein Textabsatz,<br />

eine Tabelle oder ein Bereich aus mehreren solcher Elemente, pixelgenau im Anzeigefenster<br />

CSS Style-Sheets 116


des Browsers positionieren. Für Drucklayouts stehen Befehle zur Definition eines<br />

Seitenlayouts bereit. Es gibt noch viele weitere Möglichkeiten, die auch in modernen Desktop<br />

Publishing Systemen üblich sind.<br />

Ein weiteres wichtiges Leistungsmerkmal von CSS ist es, dass Sie Definitionen zentral<br />

angeben können. So können Sie beispielsweise im Kopf einer HTML-Datei zentrale<br />

Definitionen zum Aussehen einer Tabellenzelle notieren. Alle Tabellenzellen der<br />

entsprechenden HTML-Datei erhalten dann die Formateigenschaften, die einmal zentral<br />

definiert sind. Das spart Programm-Code und macht die HTML-Dateien kleiner. Das<br />

funktioniert sogar über Dateigrenzen hinweg. Auf diese Weise können Sie für große Projekte<br />

einheitliche Layouts entwerfen. Mit ein paar kleinen Änderungen in einer zentralen CSS-Datei<br />

können Sie dann für hunderte von HTML-Dateien ein anderes Layout bewirken.<br />

Aber Achtung: CSS wird nicht von allen Browsern unterstützt. Einige Implementierungen von<br />

CSS sind darüber hinaus fehlerhaft. Deshalb werden Style-Sheets bislang noch vorsichtig<br />

eingesetzt. Aus diesem Grund konzentrieren wir uns in diesem Kapitel auf die grundlegenden<br />

Merkmale von CSS. Eine Behandlung der einzelnen Sprachbestandteile würde den Rahmen<br />

dieses Kurses sprengen. Es genügt, wenn Sie sich merken, welche Möglichkeiten CSS bietet<br />

und wie CSS grundsätzlich angewandt wird.<br />

Style-Sheets in HTML einbinden<br />

Sie haben gesehen, dass CSS eine direkte Ergänzung zu HTML ist. Es gibt zwei<br />

Möglichkeiten, zentrale Stilvorlagen zu definieren und in HTML einzubinden:<br />

♦<br />

<strong>Webdesign</strong><br />

Definition eines Bereichs für Style-Sheet-Angaben innerhalb einer HTML-Datei:<br />

Mit der Anweisung .. im Kopf der HTML-Datei definieren<br />

Sie einen Bereich für Style-Sheet-Angaben. Im einleitenden -Tag müssen<br />

Sie den Typ der Formatdefinition angeben. Das geschieht durch die Angabe<br />

TYPE="text/css". Damit Browser, die keine Style-Sheets kennen, die<br />

Style-Sheet-Angaben nicht irrtümlich als anzuzeigenden Text interpretieren, sollten<br />

Sie den Bereich der eigentlichen Style-Sheet-Angaben in einen mehrzeiligen<br />

HTML-Kommentar einbinden.<br />

<br />

Stilvorlagen in HTML<br />

<br />

<br />

<br />

<br />

Die Style-Sheet-Angaben, die Sie auf diese Weise im Kopf einer HTML-Datei<br />

definieren, sind für diese eine HTML-Datei gültig.<br />

♦ Definition von Style-Sheets in einer separaten Datei:<br />

Wenn Sie für alle Dokumente Ihres Web-Auftritts die gleichen Formate haben wollen,<br />

können Sie die entsprechenden Stilvorlagen in einer eigenen Textdatei (Endung<br />

".css") definieren und auf diese Datei in jedem Dokument einfach verweisen. Das<br />

geht dann so:<br />

<br />

Stilvorlagen aus Datei<br />

<br />

<br />

Style-Sheets in HTML einbinden 117


Mit wird auf die Datei verwiesen. Mit HREF wird der Pfad der CSS-Datei<br />

(URL) angegeben. Wenn Sie die Angaben in der separaten Datei ändern, wirken sich<br />

die Änderungen einheitlich auf alle Dokumente aus, in denen diese separate Datei<br />

eingebunden ist.<br />

Wollen Sie unterschiedliche Formatangaben für verschiedene Ausgabemedien haben - z.B.<br />

helle Schrift auf dunklem Hintergrund am Bildschirm, aber dunkle Schrift auf weißem<br />

Hintergrund auf dem Drucker -, so ist dies auch möglich. Dazu müssen Sie nur für die<br />

verschiedenen Ausgabemedien verschiedene Style-Sheet-Dateien einbinden. Wichtig ist dabei<br />

die Angabe MEDIA. Durch diese Angabe bestimmen Sie, für welches Ausgabemedium die<br />

Datei verwendet werden soll, die Sie bei der Angabe HREF einbinden:<br />

<br />

Stilvorlagen für Ausgabemedien<br />

<br />

<br />

<br />

Style-Sheets definieren<br />

Zentrale Formate<br />

Wie werden nun die einzelnen Stilvorlagen definiert? Die -Anweisung bzw. die<br />

Vorlagendatei umfassen die einzelnen Style-Sheet-Angaben. Damit können Sie für jede<br />

geeignete HTML-Anweisung (Tags, die Elemente beschreiben, also z.B. nicht ) Formate<br />

zentral definieren. Wenn Sie die entsprechende HTML-Anweisung dann im Dokument<br />

verwenden, werden alle Formate angewendet, die Sie für das betreffende HTML-Tag definiert<br />

haben. So können Sie beispielsweise für Überschriften erster Ordnung, definieren, dass diese<br />

in der Schriftart Helvetica, 30 Punkte groß, rot, kursiv und mit einem an einen 3D-Knopf<br />

erinnernenden Rahmen versehen angezeigt werden, oder dass Tabellen generell mit einem<br />

himmelblauen Hintergrund dargestellt werden. Wenn Sie dann im Text der HTML-Datei eine<br />

Überschrift 1. Ordnung oder eine Tabelle wie gewohnt definieren, werden die definierten<br />

Formateigenschaften bei der Anzeige im WWW-Browser berücksichtigt. Die Definitionen für<br />

das Beispiel lauten:<br />

<br />

<br />

Zentrale Formatdefinitionen<br />

<br />

<br />

<br />

<br />

<br />

<br />

Überschrift<br />

<br />

<br />

Tabelle<br />

&nbsp;<br />

Spalte 1<br />

Spalte 2<br />

Spalte 3<br />

Zeile 1<br />

<strong>Webdesign</strong><br />

Style-Sheets definieren 118


Feld 1,1<br />

Feld 2,1<br />

Feld 3,1<br />

Zeile 2<br />

Feld 1,2<br />

Feld 2,2<br />

Feld 3,2<br />

<br />

<br />

<br />

<br />

In der Browser-Anzeige sieht das dann so aus:<br />

Wie Sie sehen, wird in der Stil-Angabe zuerst das gewünschte HTML-Tag ohne spitze<br />

Klammern notiert, gefolgt von den dazugehörenden, gewünschten Formatdefinitionen in<br />

geschweiften Klammern. Innerhalb der geschweiften Klammern können Sie eine oder mehrere<br />

Formateigenschaften definieren. Jede Eigenschaftszuweisung besteht aus einem Namen, z.B.<br />

color und einem Wert, z.B. #FF0000, getrennt durch einen Doppelpunkt. Schließen Sie<br />

jede Formatdefinition jeweils durch einen Strichpunkt ab. Nur bei der letzten Formatdefinition<br />

vor der abschließenden geschweiften Klammer darf der Strichpunkt entfallen. Wenn Sie<br />

gleichartige Formate für mehrere HTML-Tags definieren wollen, geben Sie alle gewünschten<br />

Tags an und trennen Sie diese durch Kommata, also z.B.<br />

H1, H2 { font-family: Helvetica }<br />

bedeutet das gleiche wie<br />

H1 { font-family:Helvetica }<br />

H2 { font-family:Helvetica }.<br />

Format-Klassen<br />

Ein und dieselbe HTML-Anweisung kann in ganz verschiedenen logischen Situationen<br />

vorkommen. Eine Überschrift erster Ordnung kann einmal eine Überschrift zu Tabellen sein,<br />

ein anderes Mal eine Überschrift zu einem Textabsatz. Je nach Anwendungsfall möchten sie<br />

die Überschrift anders darstellen. Dazu können Sie in den Formatdefinitionen so genannte<br />

Klassen bilden. Dazu müssen Sie jeder Klasse einen Namen geben. Sollen Überschriften<br />

erster Ordnung für eine Tabelle in roter Schrift und Überschriften erster Ordnung für Absätze<br />

in blauer Schrift erscheinen, so kann die Definition folgendermaßen aussehen:<br />

<br />

<strong>Webdesign</strong><br />

Style-Sheets definieren 119


H1.tabelle { color:#FF0000 }<br />

H1.absatz { color:#00FFFF }<br />

<br />

In der Anwendung im Dokument müssen Sie der Überschrift jeweils die gewünschte Klasse<br />

als Parameter mitteilen. Das geht dann so:<br />

<br />

Überschrift Tabelle<br />

Überschrift Absatz<br />

<br />

"Überschrift Tabelle" wird rot angezeigt, "Überschrift Absatz" dagegen blau.<br />

Verschachtelte Formatangaben<br />

Im Namen von CSS kommt "Kaskade" vor. Über eine Kaskade läuft normalerweise Wasser<br />

von einer oberen Stufe über verschiedene Zwischenstufen nach unten. Das bedeutet hier, dass<br />

Sie Stilvorgaben verschachteln können. Wenn Sie nichts anderes angeben, übernimmt ein<br />

HTML-Tag innerhalb eines anderen HTML-Tags dessen Eigenschaften und fügt seine<br />

eigenen Eigenschaften nur hinzu. Wenn Sie beispielsweise für Überschriften erster Ordnung<br />

die Schriftart Times und die Farbe rot definieren, erscheint Text, der innerhalb einer solchen<br />

Überschrift mit .. formatiert wird, ebenfalls rot und in Times, aber zusätzlich<br />

kursiv.<br />

Sie können mit Hilfe von Style-Sheets aber auch bestimmen, dass ein HTML-Tag bestimmte<br />

Eigenschaften nur dann hat, wenn er innerhalb eines bestimmten anderen HTML-Tags<br />

vorkommt. So können Sie etwa bestimmen, dass .. innerhalb der gerade<br />

definierten roten Überschriften erster Ordnung nicht kursiv, stattdessen aber normal und in<br />

blauer Farbe dargestellt wird, während der gleiche Befehl innerhalb anderer HTML-Tags nach<br />

wie vor nichts anderes als eine kursive Darstellung bewirkt. Die Definition hierzu lautet:<br />

<br />

H1 { color:#FF0000 }<br />

H1 I { color:#00FFFF; font-weight:normal }<br />

<br />

Unabhängige Formate<br />

<strong>Webdesign</strong><br />

Sie können Formate unter einem zu wählenden Namen vordefinieren, und sie anschließend<br />

auf beliebige geeignete HTML-Anweisungen anwenden. So können Sie z.B. ein unabhängiges<br />

Format mit der Eigenschaft fett/kursiv definieren. Dieses unabhängige Format können Sie<br />

dann innerhalb von HTML-Tags anwenden. Die Definition lautet:<br />

<br />

#fettkursiv { font-weight:bold; font-style:italic }<br />

<br />

In der Anwendung im Dokument bewirkt dann<br />

<br />

Extra-Überschrift<br />

Normale Überschrift<br />

<br />

dass die erste Überschrift fett und kursiv und die zweite Überschrift wie im Browser üblich<br />

dargestellt werden.<br />

Style-Sheets definieren 120


Formatangaben innerhalb des Dokuments<br />

Neben den zentralen Formatdefinitionen, die für die ausgewählten HTML-Tags im gesamten<br />

Dokument gelten, besteht in CSS auch die Möglichkeit, innerhalb des Dokuments für einzelne<br />

HTML-Anweisungen oder sogar für einzelne Wörter oder Textbereiche Stil-Angaben zu<br />

machen. Sie können Formatangaben für ein HTML-Tag bestimmen, indem Sie innerhalb des<br />

Start-Tags den Parameter STYLE= und dahinter, in Anführungszeichen, die gewünschten<br />

Formatdefinitionen schreiben. Diese unmittelbaren Formatierungsangaben gelten dann genau<br />

für den Bereich zwischen Start- und Ende-Tag dieser HTML-Anweisung. Mit<br />

<br />

Ein Textabsatz<br />

<br />

legen Sie z.B. fest, dass genau dieser Textabsatz in Arial-Schrift in roter Farbe angezeigt wird.<br />

Darüber hinaus können Sie Style-Sheet-Formatierungen an beliebigen Stellen innerhalb des<br />

normalen Textes unabhängig vom HTML-Tag definieren. Dazu gibt es das neue Tag<br />

... Diese Anweisung legt den zu formatierenden Bereich fest. Mit dem<br />

Parameter STYLE= können Sie dann wie oben beschrieben die Stil-Angaben für diesen<br />

Bereich festlegen.<br />

<br />

In der Überschrift ist ein<br />

blaues Wort<br />

<br />

bewirkt z.B., dass in der Überschrift "blaues" in blauer Farbe angezeigt wird.<br />

Style-Sheet-Angaben<br />

<strong>Webdesign</strong><br />

Zum Schluss erhalten Sie eine Übersicht über die wichtigsten Style-Sheet-Angaben, die Sie in<br />

den im letzten Abschnitt beschriebenen Formatdefinitionen verwenden können.<br />

Stil-Angabe: Bedeutung: Werte:<br />

background-color Hintergrundfarbe Farbangabe<br />

background-image Hintergrundbild URL<br />

border-color Rahmenfarbe Farbangabe<br />

border-width Rahmenbreite thin, medium, thick, num.<br />

Angabe<br />

color (Text-)Farbe Farbangabe<br />

font-familiy Schriftart Arial, Helvetica, usw.<br />

font-size Schriftgröße large, medium, small, ...,<br />

14pt<br />

font-style Schriftneigung normal, italic, oblique<br />

font-weight Schriftdicke bold, bolder, lighter,<br />

100...900<br />

margin Abstand/Rand ringsum numerische Angabe<br />

margin-left Abstand/Rand links numerische Angabe<br />

Style-Sheets definieren 121


margin-right Abstand/Rand rechts numerische Angabe<br />

margin-top Abstand/Rand oben numerische Angabe<br />

margin-bottom Abstand/Rand unten numerische Angabe<br />

position Positionierungsart absolute, fixed, relative,<br />

static<br />

top Position von oben numerische Angabe<br />

left Position von links numerische Angabe<br />

right Position von rechts numerische Angabe<br />

bottom Position von unten numerische Angabe<br />

text-align Ausrichtung left, center, right<br />

text-decoration unterstreichen,<br />

durchstreichen, etc.<br />

none, underline, overline,<br />

line-through, blink<br />

text-ident Einzug erste Zeile numerische Angabe<br />

text-transform Groß-/Kleinbuchstaben<br />

erzwingen<br />

none, capitalize,<br />

lowercase, uppercase<br />

Farbangaben sind wie in HTML RGB-Hexadezimalwerte. Numerische Angaben können<br />

absolute Werte sein - in (inches), cm (centimeters), mm (millimeters), pc (picas), pt (points)<br />

- oder auch relative Werte - px (pixel), em (bezogen auf Schrifthöhe), ex (bezogen auf Höhe<br />

des Buchstabens X), % (prozentual gegenüber Elementnorm) -.<br />

5.10 Automatischer Seitenwechsel oder Dia-Shows<br />

Mit Hilfe eines Tricks im Kopf einer HMTL-Datei können Sie mehrere HTML-Dokumente<br />

automatisch nacheinander anzeigen lassen (Dia-Show-Effekt). Dieser Trick ist vor allem in<br />

Verbindung mit Frames praktisch. So können Sie z. B. in einem Frame Information anbieten,<br />

während in einem anderen Frame automatisch Bilder in abwechselnder Folge angezeigt<br />

werden. Mit dem HTML-Tag<br />

<br />

Eingebettet zwischen und sorgt diese Zeile dafür, daß 10 Sekunden nach<br />

dem Laden dieser Seite die neue Seite "neuedatei.html" geladen wird. Statt eines Dateinamens<br />

kann natürlich auch eine komplette URL angegeben werden. Auf diese Weise kann man<br />

Besucher auch weiterleiten, wenn eine Website umzieht oder wechselnde Werbebanner auf<br />

der Seite in einem Frame einblenden.<br />

Bei der "Diashow" brauchen Sie für jedes "Dia" eine eigene HTML-Datei. Mit Hilfe der<br />

META-Anweisung im Dateikopf wird nach einer bestimmten Zeit automatisch die nächste<br />

Datei aufgerufen. Das folgende Beispiel arbeitet mit vier Dateien.<br />

Beispiel 1. Datei (dat1.html)<br />

<strong>Webdesign</strong><br />

<br />

<br />

1. Datei der Dia-Show<br />

<br />

<br />

<br />

Überschriften, Text, Links, Grafikreferenzen usw.<br />

Style-Sheet-Angaben 122


<br />

Beispiel 2. Datei (dat2.html)<br />

<br />

<br />

2. Datei der Dia-Show<br />

<br />

<br />

<br />

Überschriften, Text, Links, Grafikreferenzen usw.<br />

<br />

<br />

Beispiel 3. Datei (dat3.html)<br />

<br />

<br />

3. Datei der Dia-Show<br />

<br />

<br />

<br />

Überschriften, Text, Links, Grafikreferenzen usw.<br />

<br />

<br />

Beispiel 4. Datei (dat4.html)<br />

<strong>Webdesign</strong><br />

<br />

<br />

4. Datei der Dia-Show<br />

<br />

<br />

<br />

Überschriften, Text, Links, Grafikreferenzen usw.<br />

<br />

<br />

Schreiben Sie den gesamten Befehl inclusive der etwas ungewohnten Stellung der<br />

Anführungszeichen so wie in den Beispielen oben angegeben. Setzen Sie jeweils Ihre<br />

gewünschte Anzeigedauer und den Namen der nächsten aufzurufenden Datei ein.<br />

Im obigen Beispiel enthält die letzte der vier Dateien wieder einen Aufruf der ersten Datei. So<br />

erzeugen Sie eine "Endlosschleife", d.h. die Dia- Show läuft solange ab, bis der Anwender mit<br />

Hilfe der Navigationsmittel seines Browsers (oder bei Frames: in einem anderen<br />

Anzeigefenster einen Link anklickt und dadurch) eine andere Datei aufruft.<br />

5.11 XML - Extensible Markup Language<br />

Zum Schluss stelle ich Ihnen eine weitere Sprache des WWW vor, die für die elektronische<br />

Geschäftsabwicklung und die Zusammenarbeit von Unternehmen und anderen Organisationen<br />

im Internet eine herausragende Rolle spielt: XML (EXtensible Markup Language =<br />

erweiterbare Auszeichnungssprache). Ich gehe an dieser Stelle nur kurz auf die wesentlichen<br />

5.10 Automatischer Seitenwechsel oder Dia-Shows 123


<strong>Webdesign</strong><br />

Eigenschaften und Einsatzmöglichkeiten von XML ein. Ein "Sprachkurs" zu XML würde<br />

dieses Skript sprengen. Es genügt, wenn Sie wissen was XML ist und welche Möglichkeiten<br />

diese Sprache für das Internet und das WWW bereithält. Im Kurs Web-Business werden wir<br />

darauf dann zurückkommen.<br />

XML ist wie HTML abgeleitet von SGML. Doch XML ist keine "SGML-Anwendung", so<br />

wie HTML, sondern ein "SGML-Profil". Das ist eine Stufe abstrakter; man spricht dabei auch<br />

von "generalized markup", also von "verallgemeinerter Auszeichnung". Mit Hilfe von XML<br />

können Sie eigene, neue Sprachen, z.B. eigene Auszeichnungssprachen oder auch eigene<br />

Erweiterungen von HTML mit eigenen Tags für bestimmte Elemente mit bestimmten<br />

logischen Bedeutungen definieren. Davon wird auch reger Gebrauch gemacht, inbesondere<br />

durch das W3C. In gewissem Sinne stellt XML eine für die Belange des WWW spezialisierte<br />

und vereinfachte Form von SGML dar. Als man analysierte, warum die Ideen von SGML im<br />

WWW bisher keine Durchbruch erlebt haben, da war schnell klar, dass das vor allem an der<br />

hohen Komlexität von SGML liegt. Da SGML eine so komplexe Sprache ist, bedeutet es<br />

einen sehr großen Aufwand, wenn Programme geschrieben werden sollen, die<br />

SGML-Dokumente verarbeiten. Beim W3C wurde daher eine Arbeitsgruppe eingerichtet, die<br />

sich als Aufgabe vornahm, eine vereinfachte Variante von SGML zu schaffen. Das Ergebnis<br />

ist XML.<br />

XML ist also eine Metasprache für das Definieren von Auszeichnungssprachen, d.h., Sie<br />

können mit XML Befehle (Tags) und deren grundsätzliche Eigenschaften definieren. Dies<br />

geschieht über Dokumenttyp-Definitionen (DTDs), ähnlich wie in SGML. Im Vergleich zu<br />

HTML, das einen festen Satz an vordefinierten Tags mit bestimmten Bedeutungen bereithält,<br />

bietet XML überhaupt keine vordefinierten Tags. Diese werden erst vom Autor für sein<br />

Dokument bestimmt. In den DTDs werden lediglich die Regeln verfasst, nach denen ein<br />

Dokument vom Empfänger interpretiert werden soll. Damit ist XML wesentlich flexibler, aber<br />

auch abstrakter als HTML. Tatsächlich kann man durch eine entsprechende DTD HTML<br />

annähernd in XML nachbilden. Viel wichtiger ist jedoch, dass mit Hilfe von XML<br />

Unternehmen und Wirtschaftsbereiche in der Lage sind, eine Sprache mit für sie spezifischen<br />

und von ihnen verwendeten Begriffen zu definieren.<br />

Die mit XML definierten Auszeichnungssprachen werden auch als XML-Anwendungen<br />

bezeichnet. Die Syntax, Struktur und Bedeutung der Tags wird für jede XML-Anwendung mit<br />

einem Schema oder sinnvoller über DTDs für mehrere Dokumente definiert. Die Verarbeitung<br />

kann mit XML-Parsern erfolgen. Wie die Elemente sichtbar dargestellt werden sollen, kann<br />

mit Hilfe einer eränzenden Style-Sheet-Sprache, XLS (EXtensible Style Language) definiert<br />

werden. Sie ist das XML-Gegenstück zu CSS. XML-Dokumente können auch Hyperlinks<br />

enthalten, entweder wie in der Sprache HTML oder in anderen Formen (XLink, XPointer).<br />

Damit bietet sich für XML ein breites Anwendungsfeld. Zum einem für die Darstellung in<br />

Browsern (Definition von Ergänzungen bzw. Erweiterungen in HTML) und zum anderen für<br />

die weitere Verarbeitung der Informationen mit beliebigen Computerprogrammen. So wie<br />

HTML normiert ist und daher für den weltweiten Austausch von Webseiten zwischen vielen<br />

verschiedenen Webservern und Browsern verwendet wird, so kann man mit XML eigene<br />

Datei-Strukturen für verschiedene Zwecke definieren und normieren, die dann von<br />

verschiedenen Programmen und auf verschiedenen Rechner-Plattformen verwendet werden<br />

können. Wer mit HTML Dokumente einrichtet, der kümmert sich in erster Linie darum, wie<br />

das Dokument auf den Bildschirmen der Nutzer dargestellt wird. XML ist demgegenüber in<br />

hohem Maße darauf ausgerichtet, Informationen über Daten zu liefern, so dass die Daten<br />

weiterverarbeitet werden können. Mit XML rücken also Aspekte in den Vordergrund, die<br />

beim Web-Design mit HTML keine Rolle spielen. Folgende Möglichkeiten zeichnen XML<br />

aus:<br />

5.11 XML - Extensible Markup Language 124


♦ Mit XML kann man die logische Beziehung von Daten, Informationen und Texten<br />

definieren.<br />

♦ XML ermöglicht im Gegensatz zu HTML die Definition eigener oder zusätzlicher<br />

Tags.<br />

♦ XML-Anwendungen eignen sich als plattform- und softwareunabhängiges<br />

Austausch-Format für Daten zwischen verschiedenen Programmen und Rechnern.<br />

♦ XML bietet ein universelles Datenaustauschformat und kann damit proprietäre<br />

Formate ersetzen. Damit ist es zum Einsatz im Internet ideal geeignet.<br />

♦ Mit der Hilfe von Style-Sheets können XML-Dokumente auch von Browsern<br />

dargestellt werden.<br />

♦ Man kann zukünftige Versionen von HTML mit XML definieren.<br />

Die Syntax von XML ist so streng festgelegt, daß XML-Anwendungen wesentlich einfacher<br />

und effizienter von Programmen verarbeitet werden können als HTML-Dateien.<br />

HTML-Befehle beschreiben eigentlich nur, in welcher Art und Weise die Textteile strukturiert<br />

werden sollen (Überschrift, Absatz, Liste, Tabelle, Normalschrift, Fettschrift usw.). Der<br />

HTML-Code<br />

<br />

Dr. Konrad Müller-Lüdenscheid<br />

B&S AG<br />

Lüdenscheid<br />

<br />

bewirkt eine Darstellung wie<br />

Dr. Konrad Müller-Lüdenscheid<br />

B &S AG<br />

Lüdenscheid<br />

<strong>Webdesign</strong><br />

Nur dem menschlichen Betrachter ist klar, was Vor- und was Nachname, was die Firma und<br />

was der Ort ist. Mit XML kann man Tags definieren, die die Bedeutung der Informationen<br />

angeben. Mit einer geeigneten DTD lässt sich die obige Information in einem<br />

XML-Dokument folgendermaßen definieren:<br />

<br />

Konrad<br />

Dr.<br />

Müller-Lüdenscheid<br />

B & S AG<br />

Lüdenscheid<br />

<br />

Mit einem geeigneten Style-Sheet kann man aus der XML-Darstellung dann wieder zur<br />

obigen HTML-Darstellung gelangen. Mit einem anderen Style-Sheet kann dasselbe<br />

XML-Dokument aber auch als Visitenkarte oder Briefkopf dargestellt werden - eine Freiheit,<br />

die HTML nicht bietet. XML-Dokumente eignen sich also nicht nur für die Darstellung in<br />

Browsern und das Ausdrucken auf Papier, sondern auch für die weitere Verarbeitung in<br />

Programmen, in denen die logische Bedeutung der Informationen eine Rolle spielt.<br />

Dazu ein Beispiel: Eine Suche nach dem Wort "Lüdenscheid" in einer HTML-Datei würde<br />

nicht nur die Person "Müller-Lüdenscheid" liefern, sondern auch alle Personen, die in<br />

Lüdenscheid wohnen. Eine Suche nach dem gleichen Wort innerhalb der in den XML-Dateien<br />

mit bezeichneten Elemente würde hingegen wirklich nur die betreffenden<br />

Personen liefern. Außerdem kann man die in den XML-Dateien beschriebenen Personen leicht<br />

nach den einzelnen Datenfeldern sortieren, beispielsweise nach Ort oder Firma, oder andere<br />

Verarbeitungen der Daten vornehmen.<br />

5.11 XML - Extensible Markup Language 125


<strong>Webdesign</strong><br />

Bei XML kommt also zur Text-Strukturierung noch die Inhalts-Strukturierung hinzu.<br />

Die XML-Syntax ähnelt der SGML- bzw. HTML-Syntax. Die meisten Befehle (Tags) treten<br />

paarweise als Start- und Ende-Tags auf und geben an, welche Bedeutung der dazwischen<br />

liegende (eventuell durch weitere Tags unterteilte) Text hat. In HTML darf der Ende-Tag in<br />

vielen Fällen weggelassen werden. Bei XML-Anwendungen müssen dagegen die Ende-Tags<br />

immer angegeben werden, weil der Anwender bei XML-Applikationen die Möglichkeit haben<br />

soll, nachträglich zusätzliche Tags in der DTD oder im Schema zu definieren. Daher können<br />

die Verarbeitungsprogramme nicht so wie der HTML-Browser immer nach denselben Regeln<br />

die fehlenden Ende-Tags selbst korrigieren. Außerdem sind die verarbeitenden Programme<br />

viel einfacher zu schreiben und können viel effizienter ablaufen, wenn sie sich darauf<br />

verlassen können, dass das XML-File syntaktisch richtig ist, und keine automatische<br />

Fehlerkorrektur programmiert werden muss. XML-Tags, zu denen es keinen Ende-Tag gibt,<br />

müssen zur Unterscheidung davon in der Form oder geschrieben werden. In XML müsssen Start- und Ende-Tags auch immer richtig<br />

geschachtelt werden. Das gilt an sich auch für HTML, aber die HTML-Browser sind recht<br />

fehlertolerant und stellen auch Unsinn noch brauchbar dar. XML-Befehle definieren eben<br />

nicht nur das Layout des Textes, sondern auch die Bedeutung der Textteile. Falsche<br />

Interpretation der Befehle führt daher zu logisch und inhaltlich falschen Ergebnissen. Im<br />

Gegensatz zu HTML wird bei XML-Tags die Groß- und Kleinschreibung genau<br />

unterschieden. Es ist also nicht mehr egal, wie die Tags geschrieben werden. Auch die Regeln<br />

dafür, wann die Werte von Attributen (also Parametern innerhalb der Befehle) zwischen<br />

Quotes-Zeichen eingeschlossen werden müssen, sind bei XML strenger. Alle Attribut-Werte<br />

müssen immer in Anführungszeichen eingeschlossen werden. Dabei dürfen entweder das<br />

doppelte ("...") oder das einfache ('...') Anführungszeichen verwendet werden. So lassen sich<br />

auch Attribute wie name="William 'Billyboy' Gates" bilden.<br />

Wie in SGML (und daher auch in HTML) kann man auch in XML Entities definieren, bei<br />

denen einem Namen ein bestimmter Text zugeordnet wird. Diese Entities kann man dann<br />

überall im Text und auch in Parametern von Befehlen in der Form &name; verwenden.<br />

Typische Beispiele sind:<br />

♦ &lt; für das Kleiner-Zeichen <<br />

♦ &gt; für das Größer-Zeichen ><br />

♦ &amp; für das Und-Zeichen &<br />

Entities können aber nicht nur einzelne Zeichen sondern auch längere Textteile enthalten,<br />

ähnlich wie die Abkürzungs-Makros in der Textverarbeitung.<br />

Kommen wir noch einmal zu den XML-Anwendungen zurück. Sie erinnern sich: Unter einer<br />

XML-Anwendung versteht man die Festlegung (Normierung) von XML-Befehlen für eine<br />

Klasse von XML-Dokumenten gleicher Struktur, also für einen bestimmten Zweck. Das<br />

Format und die Struktur der XML-Dateien sowie die Eigenschaften und die darin<br />

vorkommenden Elemente (XML-Befehle, Tags, Entities) werden für eine XML-Anwendung<br />

mit einer DTD (Document Type Definition) oder einem Schema definiert.<br />

XML-Anwendungen befanden sich Anfang 2001 oft noch in der Entwicklungsphase. Durch<br />

eine starke Verzahnung der Anwendungen (Sprachen) zu ihrer "Mutter" XML ist jedoch<br />

gewährleistet, dass zukünftige Versionen trotzdem gewisse Rahmenrichtlinien einhalten. So<br />

ist es denkbar, dass ein Browser eine neue Sprache einfach beherrschen kann, indem einmalig<br />

eine spezielle Definitionsdatei (eine DTD) importiert wird. Einige (wenige) Beispiele für<br />

XML-Anwendungen (neue Sprachen) sind:<br />

♦ XSL (Xtensible Style Language) zur Festlegung des Layouts einer Darstellung,<br />

♦ DocBook für gedruckte Texte und Bücher,<br />

♦ WML (Wireless Application Protocol (WAP) Markup Language):<br />

5.11 XML - Extensible Markup Language 126


Online-Informationen für Mobiltelefone,<br />

♦ XHTML (EXtensible Hypertext Markup Language): Erweiterung bzw.<br />

Nachfolgeversion von HTML,<br />

♦ MathML (Mathematic Markup Language) zur Darstellung mathematischer Formeln,<br />

♦ >CML (Chemical Markup Language) zur Darstellung chemischer Formeln,<br />

♦ SMIL (Synchronized Multimedia Integration Language) zur Synchronisation<br />

verschiedener multimedialer Komponenten einer Webseite (z.B. simultanes Starten<br />

eines Videos und einer Tondatei).<br />

Will man in eigenen Programmen XML verwenden, so kann man auf fertige, für viele<br />

Sprachen frei verfügbare Parser zurückgreifen. Für die Programmierschnittstellen dieser<br />

Parser existieren zwei genormte Schnittstellen: DOM (Document Object Model) und SAX<br />

(Simple API for XML).<br />

Künftige Browser werden XML-Dateien direkt auf dem Bildschirm darstellen und über den<br />

Drucker ausgeben können, wenn mit einem Style-Sheet definiert ist, wie die einzelnen<br />

XML-Elemente dargestellt werden sollen. Erste Ansätze dafür gibt es im MS Internet<br />

Explorer Version 5 (mit einer Vor-Version von XSL-Style-Sheets oder mit CSS) sowie in<br />

Netscape Navigator ab Version 5 (mit CSS). Zu diesem Zweck werden auf dem Webserver<br />

die XML-Datei mit der Information und die XSL- oder CSS-Datei mit den Layout-Angaben<br />

abgespeichert.<br />

Welche Anwendungsbereiche lassen sich mit XML erschließen? Für ein normales<br />

Homepage-Design ist XML relativ uninteressant. HTML und CSS sind dafür längst zu<br />

leistungsfähig und angesicht ihrer Verbreitung kaum noch zu verdrängen. Aber im<br />

profesionellen Bereich gibt es genügend Fälle, in denen XML eine bessere Wahl darstellt als<br />

HTML. Dazu gehören große Dokumentationsprojekte, große Werkeditionen oder<br />

Lexikonprojekte. Wenn Sie häufig Formeln, Hierarchien, mathematische und<br />

wissenschaftliche Anmerkungen darstellen müssen, dann macht Ihnen das DTD-Sytem von<br />

XML dies möglich. Auch im Bereich der Datenbanken ist XML eine interessante Alternative<br />

zu herkömmlichen Formaten. XML kommt insbesondere überall da zum Einsatz, wo es<br />

Bedarf für einen strukturierten und genau definierten Austausch von Informationen gibt. Mit<br />

XML erhalten Firmen, Organisationen und ganze Branchen die Möglichkeit, eigene, an die<br />

eigenen Bedürfnisse angepasste Auszeichnungsprachen und Datenaustauschformate zu<br />

schaffen, so dass ohne große Probleme die Daten an unterschiedlichen Stellen, mit<br />

unterschiedlichen Softwaresytemen weiterverarbeitet werden können. XML stellt damit eine<br />

wesentliche Basis für den Geschäftsverkehr und die firmenübergreifende Zusammenarbeit im<br />

Internet (E-Commerce, E-Business) bereit.<br />

Zum vorhergehenden<br />

Abschnitt Zum Inhaltsverzeichnis<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

Letzte Aktualisierung: 21. Feb 2011<br />

<strong>Webdesign</strong><br />

Zum nächsten<br />

Abschnitt<br />

<strong>Webdesign</strong><br />

von Prof. Jürgen Plate<br />

5.11 XML - Extensible Markup Language 127


Interaktion, Sicherheit, Design-Regeln<br />

Interaktion mit dem Benutzer<br />

Hier finden Sie nur kurze Hinweise auf diese Möglichkeiten. Genauere Informationen müssen Sie der<br />

Dokumentation des jeweiligen WWW-Servers und der Fachliteratur entnehmen. Es gibt mehrere<br />

Möglichkeiten der Interaktion.<br />

Image-Maps (ISMAP, und USEMAP)<br />

Image-Maps erlauben die Verzweigung zu bestimmten Informationen durch die Auswahl<br />

("Anklicken") von bestimmten Regionen innerhalb eines Inline-Bildes. Dafür gibt es zwei<br />

verschiedene Verfahren:<br />

• In HTML 2 sind nur Server-seitige Image-Maps (ISMAP) vorgesehen, die mit einem<br />

CGI-Programm am Server verarbeitet werden. Dies ist die ältere und kompliziertere Methode.<br />

• Seit HTML 3.2 sind auch Client-seitige Image-Maps ( und USEMAP) vorgesehen, die<br />

direkt in der HTML-Datei spezifiziert und vom Web-Browser verarbeitet werden. Dies ist die<br />

neuere Methode, sie ist einfacher zu realisieren und wird von allen neueren Web-Browsern<br />

unterstützt.<br />

• In HTML 4 wird empfohlen, in Zukunft nur mehr Client-seitige und keine Server-seitigen<br />

Image-Maps in HTML-Dateien einzubauen.<br />

Server-seitige Image-Maps<br />

Bei Server-seitigen Image-Maps muß die Verarbeitung durch ein auf dem WWW-Server laufendes<br />

CGI-Programm erfolgen. Im HTML-File ist eine Kombination aus einem -Befehl für das<br />

CGI-Programm und einem -Tag für das Bild mit der Angabe "ISMAP" anzugeben. Zum<br />

Beispiel:<br />

<br />

<br />

Client-seitige Image-Maps<br />

Bei Client-seitigen Image-Maps erfolgt die Verarbeitung durch den Browser auf Grund von<br />

entsprechenden Angaben in der HTML-Datei, und es ist kein CGI-Programm notwendig. Diese<br />

Möglichkeit ist seit HTML 3.2 vorgesehen und wird von allen neueren Web-Browsern unterstützt.<br />

Welche Teile des Bildes den Sprung zu welchem Hyperlink bewirken sollen, wird mit Hilfe von<br />

festgelegt - entweder in derselben HTML-Datei wie die Verwendung des Bildes oder in einer<br />

separaten Datei die gemeinsam mit dem Bild abgespeichert ist.<br />

Im - oder -Tag des Bildes wird dann mit "USEMAP" auf diese Map-Spezifikation<br />

verwiesen.<br />

Da nicht alle Benutzer die Darstellung von Bildern eingeschaltet haben und da manche Web-Browser<br />

und viele Suchmaschinen solche Image-Maps nicht richtig verarbeiten, muß man bei einer Image-Map<br />

zusätzlich ein "normales" Link angeben, das zu einer Liste von Hypertext-Links in Textform führt.<br />

Damit wird sichergestellt, daß alle Benutzer und Suchhilfen die betreffenden Informationen erreichen<br />

können.<br />

Quelltext des Beispiels:<br />

<br />

<br />

<br />

Interaktion, Sicherheit, Design-Regeln 128


<br />

Klicken Sie auf eines der drei Felder<br />

<br />

Die Eingabe für Browser ohne Image-Map-Fähigkeiten hat folgenden Aufbau:<br />

Ihr Browser ... <br />

Sie ... k&ouml;nnen ... nun ... ausw&auml;hlen:<br />

<br />

Infos oben<br />

Infos mitte<br />

Infos unten<br />

<br />

Hier das Ganze zum Ausprobieren:<br />

Klicken Sie auf eines der drei Felder<br />

<strong>Webdesign</strong><br />

Je nachdem, wohin Sie in dieses Bild klicken, gelangen Sie zu einer der folgenden vier Stellen (die<br />

entsprechende Zeile sitzt an der Oberkante der Seite):<br />

• Sie haben das obere schwarze Feld ausgewählt.<br />

• Sie haben das mittlere rote Feld ausgewählt.<br />

• Sie haben das untere goldene Feld ausgewählt.<br />

• Ihr Browser unterstützt Client-seitige Image-Maps nicht. Sie sind deshalb hier bei der<br />

Alternative "ohne Map" gelandet und können die drei Möglichkeiten nun mit normalen Links<br />

auswählen:<br />

♦ Informationen zum oberen Bereich<br />

♦ Informationen zum mittleren Bereich<br />

♦ Informationen zum unteren Bereich<br />

Manche Web-Browser stellen nicht als Bild, sondern als Pull-down-Menü mit den in den<br />

ALT-Parametern angegebenen Texten dar. Die Angabe dieser Texte mit ALT= in ist deshalb<br />

zwingend vorgeschrieben.<br />

Das folgende Beispiel zeigt eine Imagemap von Deutschland. Die einzelnen Bundesländer sind als<br />

Polygon definiert. Klickt man auf ein Land, wird das dazu passende Link aufgerufen. Hier führen die<br />

Links jedoch nirgendwohin.<br />

Image-Maps (ISMAP, und USEMAP) 129


Im Quelltext sieht das so aus:<br />

<strong>Webdesign</strong><br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />


<br />

<br />

Formulare und CGI-Programme am Server (Common Gateway<br />

Interface)<br />

Ein CGI-Programm ist ein Computer-Programm, das auf dem WWW-Server läuft und die Ausgabe an<br />

den Client sendet. Die Ausgabe besteht in der Regel aus einem HTML-Dokument. Im Gegensatz zu<br />

HTML-Dateien, die einen festen Inhalt besitzen, kann man damit Informationen dynamisch<br />

generieren. So lassen sich Infos übermitteln, die sich laufend ändern oder die von Benutzer-Eingaben<br />

abhängen.<br />

Der Aufruf des CGI-Programms erfolgt in einem Hypertext-Link oder einem Formular mit einem<br />

URL der Form:<br />

http://host.domain/cgi-directory/filename<br />

oder<br />

http://host.domain/cgi-directory/filename?parameterliste<br />

Beispiel: Ein einfaches UNIX-Shell-Script, das Datum und Uhrzeit anzeigt.<br />

#!/bin/sh<br />

echo "Content-Type: text/html"<br />

echo ""<br />

echo "Datum"<br />

echo "Heute ist "<br />

date<br />

echo ""<br />

CGI-Prozeduren können in verschiedenen Sprachen geschrieben werden (Shell-Scripts, Perl-Scripts,<br />

C-Programme u.a.). Die Detail-Informationen dazu finden Sie in der Dokumentation des jeweiligen<br />

WWW-Servers. Wichtig sind die beiden ersten Zeilen, die Zeile Content-Type: text/html<br />

und die darauffolgende Leerzeile, welche die Antwort des CGI-Programms von einer normalen<br />

HTML-Datei unterscheiden.<br />

Zugriffe zählen<br />

Eigentümer einer Website möchten oft wissen, wie oft Ihre Informationen von Interessenten in aller<br />

Welt gelesen werden. Die schlechteste Möglichkeit ist ein Counter auf der Homepage selbst, denn der<br />

verhindert, daß die Seiten in einem Cache gespeichert werden und so dem Surfer schnell angezeigt<br />

werden können. Besser ist da die Veröffentlichung einer Server-Statistik.<br />

Die meisten WWW-Server führen eine Log-Datei, in der alle Zugriffe auf die WWW-Seiten<br />

protokolliert werden, und Sie können mit einem einfachen UNIX-Shell-Script zählen, wie oft Ihr<br />

Filename darin vorkommt. Zum Beispiel:<br />

#!/bin/sh<br />

url="$1"<br />

logfile=/home/infosys/log/access_log<br />

n=`grep -i "$url" $logfile | wc -l`<br />

echo "$n Zugriffe auf $url"<br />

<strong>Webdesign</strong><br />

Formulare und CGI-Programme am Server (Common Gateway Interface) 131


Außerdem finden Sie im Log-File auch die Information, von welchen Clients auf Ihre Datei<br />

zugegriffen wurde (aber im allgemeinen nicht, von welchen Personen). Damit zählen Sie aber nur, wie<br />

oft die Datei angefordert, und nicht, wie oft die Information tatsächlich gelesen wurde. Schuld daran<br />

sind die Cache-Speicher, die zur Entlastung der Netzverbindungen notwendig sind, denn die meisten<br />

Browser haben einen lokalen Cache-Speicher und viele Institutionen verwenden Cache-Server<br />

('Proxy-Cache'), die dann für alle Zugriffe aus diesem Bereich wirken.<br />

Wie oft eine Datei tatsächlich gelesen wurde, ist im allgemeinen also wesentlich mehr als die am<br />

WWW-Server gezählte Zahl der Datei-Übertragungen.<br />

Formulare<br />

Der Inhalt von HTML-Dateien wird jeweils vom WWW-Server zum Benutzer am Client gesendet.<br />

Mit Hilfe von Formularen, die in HTML-Dateien stehen, können die Benutzer bestimmte<br />

Informationen am Client eingeben und an den WWW-Server senden. Diese Daten werden meistens<br />

von einem auf diesem Server laufenden CGI-Programm verarbeitet. Zum Beispiel:<br />

<br />

Anmeldung zur Weihnachtsfeier des Fachbereichs am 18. Dezember<br />

<br />

Ich komme.<br />

Ich komme nicht.<br />

<br />

Name: <br />

Telefonnummer: <br />

<br />

<br />

<br />

bewirkt eine Darstellung wie<br />

Anmeldung zur Weihnachtsfeier des Fachbereichs am 18. Dezember<br />

Ich komme.<br />

Ich komme nicht.<br />

Name:<br />

Telefonnummer:<br />

<strong>Webdesign</strong><br />

Anmerkung: Das in diesem Beispiel verwendete CGI-Programm gibt es nicht (schon, weil es den<br />

Rechner nicht gibt).<br />

Eine 'echte' Anmeldungs-Prozedur würde die Zu- und Absagen mit Name und Telefonnummer in<br />

einer Datenbank speichern und dann die Bestätigung an den Client senden.<br />

Das Senden einer solchen Antwort ist immer notwendig, denn der Benutzer muß auf seinem<br />

Bildschirm erkennen können, daß das Anklicken des Submit-Knopfes funktioniert hat. Im einfachsten<br />

Fall genügt eine kurze Meldung, daß die Eingabe verarbeitet wird, und ein Hinweis, daß der Benutzer<br />

mit der Back-Taste oder dem Back-Befehl seines Browsers zur vorherigen Information zurückkehren<br />

und weiterarbeiten kann.<br />

Für genauere Informationen über die vom Server unterstützten Übertragungs-Methoden und die<br />

Übergabe der Eingabedaten an das CGI-Programm ist ein Studium der entsprechenden Fachliteratur<br />

nötig.<br />

Als Methode können GET oder POST verwendet werden.<br />

Zugriffe zählen 132


<strong>Webdesign</strong><br />

• GET hängt die Eingabedaten an die URL an (Längenbeschränkung, nur praktikabel bei<br />

wenigen Eingaben),<br />

• POST erzeugt einen eigenen Datenstrom.<br />

Die CGI-Programme müssen so geschrieben werden, daß Ihre Ausführung kein Sicherheitsrisiko für<br />

den Server-Computer darstellen kann, egal was für eventuell seltsame Eingaben von den Benutzern<br />

kommen. Inzwischen gibt es auch diverse fertige CGI-Programme zum Einsatz auf dem Server.<br />

Nun etwas mehr Info zum Aufbau von Formularen. Zur Erinnerung: Formulare werden durch die Tags<br />

... begrenzt, wobei über die Attribute METHOD und ACTION die Art der<br />

Verarbeitung und das Bearbeitungsprogramm auf dem Server spezifiziert werden:<br />

<br />

Innerhalb eines Formulars gibt es neben drei Eingabe-Tags, INPUT, SELECT und TEXTAREA.<br />

Das INPUT-Widget <br />

Dies ist das häufigste Widget und es hat zahlreiche Attribute:<br />

TYPE="...."<br />

Typ des Widgets. Als Typangaben sind möglich: CHECKBOX, HIDDEN, PASSWORD,<br />

RADIO, RESET, SUBMIT, TEXT, IMAGE.<br />

NAME="...."<br />

Name des Eingabefeldes. Dieser Name wird im Datenstrom zurückgegeben.<br />

VALUE="...."<br />

Defaultwert (TEXT, HIDDEN), Wert des Menüpunkts (CHECKBOX, RADIO), Beschriftung<br />

des Feldes (RESET, SUBMIT).<br />

SRC="...."<br />

Quelldatei für einen IMAGE-Button.<br />

CHECKED<br />

Defaulteinstellung bei CHECKBOX und RADIO.<br />

SIZE="...."<br />

Feldgröße (Anzahl Zeichen) beim TEXT-Widget.<br />

MAXLENGTH="...."<br />

Maximallänge der Eingabe beim TEXT-Widget.<br />

ALIGN="...."<br />

Position des Textes neben einem Bild beim IMAGE-Tag.<br />

Die folgenden Beispiele sollen die Anwendung des INPUT-Tags etwas erläutern. Das Passwort-Feld<br />

unterscheidet sich vom Textfeld nur dadurch, daß die Eingabezeichen als '*' geechot werden.<br />

Grundsätzlich hat jedes Feld einen Namen, der es dem Programm oder Script auf dem Server erlaubt,<br />

das Eingabefeld zu identifizieren. Bei RADIO-Buttons kann ein Wert aus dem Angebot ausgewählt<br />

werden, bei einer CHECKBOX deren mehrere.<br />

• Beispiel 1: Eingabezeile von 40 Zeichen Länge:<br />

<br />

• Beispiel 2: Verstecktes Eingabefeld, das z. B. zur Identifikation des Formulars dienen kann:<br />

<br />

• Beispiel 3: Drei Radio-Buttons, Knopf 1 ist gedrückt:<br />

Knopf 1<br />

Knopf 2 Knopf 3<br />

Formulare 133


•<br />

Knopf 1 Knopf 2 Knopf 3<br />

Beispiel 4: Checkbox mit 4 Knöpfen, Knöpfe 1 und 2 gedrückt:<br />

K. 1<br />

K. 2<br />

K. 3 K. 4<br />

K. 1 K. 2 K. 3 K. 4<br />

• Zum Rücksetzen aller Werte auf die Voreinstellungen dient der RESET-Type und zum<br />

Absenden an den Server der SUBMIT-Button:<br />

<br />

Das TEXTAREA-Widget .... <br />

erlaubt die Definition eines rechteckigen Eingabefeldes. Die Größe des Feldes auf dem Bildschirm<br />

wird durch die Attribute ROWS und COLS festgelegt; die Eingabe selbst kann umfangreicher sein.<br />

Zwischen und kann eine Textvorgabe stehen. Es gibt drei Attribute:<br />

NAME="...."<br />

Name des Eingabefeldes (wie bei INPUT).<br />

ROWS="...."<br />

Anzahl Zeilen des Feldes<br />

COLS="...."<br />

Anzahl Spalten des Eingabefeldes<br />

• Beispiel für die Definition einer Textarea:<br />

Beliebiger Text, der im<br />

Textfeld steht. <br />

Das SELECT-Widget .... <br />

Selektionsfelder benötigen weniger Platz als Checkboxes oder Radiobuttons; sie gleichen<br />

Pull-Down-Menüs. Es gibt auch nur drei Attribute:<br />

NAME="...."<br />

Name des Feldes wie schon zuvor.<br />

SIZE="...."<br />

Anzahl der dargestellten Elemente. MULTIPLE erlaubt Mehrfachauswahlen. Fehlt die<br />

SIZE-Angabe, stellt sich das Widget als Pull-Down-Menü dar, von dem zunächst nur ein<br />

Menüpunkt sichtbar ist und das man zunächst öffnen muß (Pop-Up-Menü). Im anderen Fall<br />

zeigt sich das Menü als Scrollbar.<br />

OPTION<br />

Ein Menüfeld wird über das OPION-Tag beschrieben, wobei der voreingestellte Menüpunkt<br />

über das SELECTED-Attribut ausgewählt wird. Beispiel:<br />

<br />

Feld 1<br />

Feld 2<br />

Feld 3<br />

Feld 4<br />

<br />

<strong>Webdesign</strong><br />

<br />

Feld 1<br />

Feld 2<br />

Feld 3<br />

Feld 4<br />

<br />

Formulare 134


Der Image-Button<br />

Ein Image-Button erfüllt zwei Aufgaben: Er übernimmt die Aufgabe des SUBMIT-Feldes und<br />

übermittelt zusätzlich die Koordinaten der Stelle, auf die im Bild geklickt wurde.<br />

Beispiel:<br />

E-Mail<br />

mir!<br />

erzeugt eine Mail mit Betreff(-vorgabe) "Webseiten-Mail"<br />

E-Mail mir!<br />

erzeugt entsprechend eine Mail, die bereits etwas im Text stehen hat.<br />

Natürlich läßt sich beides kombinieren. Die einzelnen Felder werden durch ein Ampersand (&)<br />

voneinander getrennt.<br />

E-Mail mir!<br />

Die Nachricht geht an account@domain.tld, als Kopie an account2@domain2.tld und hat die<br />

Betreffsvorgabe "Wichtige Anfrage". Im Text steht anfänglich "Hier eintragen!".<br />

Na, wollen Sie das mal testen?<br />

<strong>Webdesign</strong><br />

Formulare 135


Dies läßt sich überall dort ideal einsetzen, wo Programme angeschrieben werden, das berühmte<br />

'subscribe' oder 'join' and einen Mailinglisten-Server, der per E-Mail gesteuert wird.<br />

Definitionen<br />

Server<br />

Client- und Servertechnik<br />

Server (Verkäufer, Bedienender) sind die Computer, auf denen die Informationen gespeichert sind.<br />

WWW-Server laufen meistens auf Unix-Rechnern und werden auch als HTTP-Dämonen bezeichnet.<br />

Es gibt mehrere solche Software-Produkte, sowohl public domain als auch kommerziell.<br />

Client<br />

Clients (Kunden) sind die Rechner, die Dienste in Anspruch nehmen. Client-Programme sind die<br />

Programme, mit denen die Benutzer von ihren eigenen Rechnern aus auf die Informationen, die auf<br />

den Servern gespeichert sind, zugreifen.<br />

Return-Codes eines WWW-Servers<br />

Ein WWW-Server gibt auf jede Anfrag eine Status-Antwort zurück. Sie zeigt die Version des Servers<br />

an und gibt einen Ergebniscode zurück. Manchmal wird auch noch eine Meldung angehängt. Die erste<br />

Zeile sieht typischerweise so aus:<br />

HTTP/1.0 200 OK<br />

wobei HTTP/1.0 die HTTP-Version ist, 200 ist ein Fehlercode und OK die zugehörige Meldung. Es<br />

gibt natürlich viele andere Codes.<br />

Erfolgsmeldungen<br />

Rückmeldungen im Bereich 2xx melden Erfolg. Der Body - sofern vorhanden - ist das Objekt, das die<br />

Anfrage zurückgibt. Der Body muß im MIME-Format vorliegen. Wichtige Codes sind:<br />

200 OK<br />

Die Anforderung war erfolgreich<br />

201 Created<br />

Antwort auf den POST-Befehl<br />

202 Accepted<br />

Anforderung wird bearbeitet (noch nicht abgeschlossen)<br />

203 Partial Information<br />

Antwort auf den GET-Befehl.<br />

204 No Response<br />

Anforderung erhalten; es gibt keine Rückinfo, die zu senden wäre.<br />

Umleitungen<br />

<strong>Webdesign</strong><br />

Rückmeldungen im Bereich 3xx weisen auf Aktionen hin, die der Client (normalerweise Automatisch)<br />

ausführen muß, um eine anforderung zu erfüllen.<br />

301 Moved<br />

Den angeforderten Daten wurde auf Dauer eine neue URL zugewiesen. Die Antwort enthält<br />

Mailto Deluxe 136


eine Headerzeile der Form URL:neue url.<br />

302 Temporarily_Moved<br />

Den angeforderten Daten wurde zeitweise eine neue URL zugewiesen. Die Antwort enthält<br />

eine Headerzeile der Form URL:neue url.<br />

303 Method<br />

Entweder eine andere Netzwerkadresse oder eine andere Methode als GET verwenden. Im<br />

Body sind weitere Infos zu den Parametern.<br />

304 Not_Modified<br />

Antwort auf bedingte GET-Anweisung, wenn das Dokument unverändert ist.<br />

Client-Fehler<br />

Rückmeldungen im Bereich 4xx weisen auf scheinbare oder echte Fehler beim Client hin. Der Body<br />

kann ein HTML-Dokument enthalten, das den Fehler näher beschreibt.<br />

400 Bad Request<br />

Anforderung hat falsche Sytax oder kann nicht bedient werden.<br />

401 Unauthorized<br />

Unzulässige Zugriffsberechtigung (falscher Header?).<br />

402 Payment Required<br />

Ungültiges Verrechnungsschema.<br />

403 Vorbidden<br />

Anforderung verboten.<br />

404 Not Found<br />

Der Server hat nichts gefunden, was der angegebenen URL entspricht (Tippfehler? Seite<br />

gelöscht?)<br />

Server-Fehler<br />

<strong>Webdesign</strong><br />

Rückmeldungen im Bereich 5xx weisen auf Fehler beim Server. Der Body kann ein HTML-Dokument<br />

enthalten, das den Fehler näher beschreibt.<br />

500 Internal Error<br />

Interner Serverfehler.<br />

501 Not Implemented<br />

Anforderung wird nicht unterstützt.<br />

502 Bad Gateway<br />

Ungültige Antwort von Gateway oder einem anderen Server.<br />

503 Service Unavailable<br />

Server Überlaset oder gesperrt.<br />

504 Gateway Timeout<br />

Gateway (z. B. Datenbank) antwortet nicht.<br />

Cookies<br />

Cookies sind kleine Informationseinheiten, die beim Besuch einer Wehsite zunächst im<br />

Arbeitsspeicher des heimischen Computers gespeichert werden. Unter Umständen werden diese Daten<br />

nach Verlassen des Wehservers in Form einer Textdatei auf die lokale Festplatte geschriehen.<br />

Ein Cookie besteht aus einem Namen, einem Wert (Zeichenkette) und einem URL. Zudem besitzt ein<br />

Cookie eine Lebensdauer. Wird der Ausflug ins Netz beendet und der Browser geschlossen, werden<br />

alle Cookies, deren Lebensdauer noch nicht abgelaufen ist, in einer Datei gespeichert. Man spricht<br />

dann von 'persistenten Cookies'. Zukünftig läßt sich dann mühelos verfolgen, wie oft genau dieser<br />

Anwender wiederkommt und was er tut.<br />

Return-Codes eines WWW-Servers 137


<strong>Webdesign</strong><br />

Ursprünglich wurden von Netscape die Cookies zur Erleichterung für den Anwender entwickelt. Sie<br />

sollten persönliche Informationen enthalten, die der Anwender beim nächsten Besuch eines<br />

Online-Angebots nicht mehr eingeben mußte, z. B. für den Zugriff auf Angebote, die eine<br />

Zugangskennung erfordern. Eine andere Anwendung wäre ein 'Einkaufskorb'. Da jeder Seitenabruf<br />

einen abgeschlossenen Kommunikationsvorgang darstellt, kann der Server nicht speichern, welche<br />

Waren ein Kunde schon in seinen Korb gelegt hat. Cookies bieten hier die Möglichkeit den Inhalt des<br />

Einkaufskorbes beim Kunden zu speichern, bis die abschließende Bestellung durch eine Bestätigung<br />

erfolgt. Normalerweise lassen sich Cookies auch keiner spezifischen Identitäten zuordnen, sofern der<br />

Besucher nicht woanders seine Identität preisgibt.<br />

Unternehmen können mit Hilfe von Cookies Abrufprofile erstellen z. B. für verläßliche Abrufprofile<br />

für Reichweitenuntersuchungen. Schließlich will man wissen, welche Seiten wie oft abgerufen<br />

werden. Daraus lassen sich u. a. Schlußfolgerungen für die weitere Gestaltung einer Website ziehen.<br />

Trotz zahlreicher Ansätze gibt es bislang noch kein genormtes Verfahren zur Bildung von<br />

Abrufprofilen. Grundsätzlich besteht die Möglichkeit zur Bildung von Abrufprofilen jedoch auch ohne<br />

Cookies - durch die Auswertung von Logbüchern, z. B. mit entsprechenden Monitoring-Tools.<br />

Problematisch wird es, wenn Cookies mit langer Lebensdauer eingesetzt werden. Durch persistente<br />

Cookies ist es möglich, einen Benutzer über mehrere Sessions hinweg zu identifizieren. Dadurch<br />

erhöht sich die Informationsmenge und die Zuordnung einer Personenidentität vereinfacht sich. Das<br />

ist ganz ohne Cookies nicht möglich. Mittlerweile gibt es eine Reihe von Shareware-Tools, mit denen<br />

sich Cookies auf dem Computer identifizieren und löschen lassen. Normalerweise befindet sich im<br />

Verzeichnisbaum des Browsers irgendwo eine Datei namens 'cookies.txt'. Auf UNIX-Systemen<br />

genügt es, die Leseberechtigung der Datei wegzunehmen. Auf Windows-Rechnern kann man den<br />

Inhalt der Datei löschen und sie dann auf 'Read-Only' zu setzen. Letztendlich sind Cookies aber<br />

harmlos.<br />

Anbieter, die in Ihrem WWW-Angebot Cookies verwenden, sollten einfach vorher auf deren<br />

Anwendung und den Zweck hinweisen. Dann weiß nämlich der Websurfer woran er ist und<br />

wird auch weniger Vorbehalte gegen die Cookies haben.<br />

Weitere Informationen über Cookies findet man unter<br />

• http://www.cookiecentral.com<br />

• http://www.netscape.com/newsref/std/cookie_spec.html<br />

Die Datei robots.txt<br />

Wieviele Betreiber einer Internetpräsentation haben sich beim Studium Ihrer Serverlogbücher<br />

bestimmt schon gefragt, warum in regelmäßigen Abständen eine Datei namens robots.txt abgerufen<br />

wird.<br />

Wen interessiert diese Datei? Die Datei wird von Suchmachinen gesucht die Spider oder Crawler<br />

benutzen. Suchmaschinen die, nachdem Ihr Server einmal angemeldet, in regelmauml;szlig;igen<br />

Abständen Ihren Server aufsuchen und nach eventüllen Veränderungen und neün Seiten und<br />

Verzeichnissen auf Ihrem Server suchen.<br />

Der 'robots exclusion standard' ist ein Quasistandard, der entwickelt wurde, um dem Serverbetreiber<br />

die Möglichkeit zu geben, ausgewählte Bereiche des Servers für die Spider der Suchmaschinen zu<br />

sperren. Durch Eintragungen in der Datei robots.txt können Sie also Verzeichnisse angeben, die nicht<br />

in Suchmaschinen automatisch aufgenommen werden sollen.<br />

Cookies 138


Wie ist robots.txt aufgebaut?<br />

# Bemerkung<br />

User-agent: *<br />

Disallw:/test<br />

#<br />

Hinter diesen Zeichen können Sie Bemerkungen hinterlassen, die jedoch vom Spider ignoriert<br />

werden. Wenn Sie einem bestimmten Spider etwas mitteilen möchten, so kouml;nnen Sie in<br />

der User-agent-Zeile eine Bemerkung hinterlassen.<br />

User-agent:<br />

* Ein Stern bedeutet, daß die Angaben für alle Spider gelten.<br />

Disallow:/Verzeichnis<br />

In diese Zeile tragen Sie die Verzeichnisse ein, die nicht aufgesucht werden sollen (Im obigen<br />

Beispiel das Verzeichnis test).<br />

Wichtig ist, daß sie die Datei in Ihrem Server-Hauptverzeichnis hinterlegen und nicht in dem<br />

betreffenden Unterverzeichnis. Wenn Sie keine robots.txt-Datei auf Ihrem Server hinterlegt haben,<br />

werden alle Verzeichnisse von den Spidern besucht.<br />

Geschützte Bereiche<br />

Bei WWW-Servern, die unter UNIX laufen wird ein Feature des Betriebssystems genutzt, das es<br />

erlaubt, das Server-Verzeichnis abzuschotten. Dieser Systemaufruf heißt chroot() und mancht das<br />

Verzeichnis, in dem der Server seine Daten hat, für alle Client-Anfragen zum Wurzelverzeichnis. Es<br />

existiert so aus Sicht des Clients nur dieses Verzeichnis mit seinen Unterverzeichnissen. Der Zugriff<br />

auf wichtige Systemdateien ist daher unmöglich.<br />

Des weiteren erlauben die Server, bestimmte Datenverzeichnisse nur für bestimmte Rechner<br />

freizugeben oder Verzeichnisse durch Benutzerkennung und Psßwort zu schützen. Dies geschieht<br />

entweder in der Serverkonfiguration oder über die Datei .htaccess in einem beliebigen<br />

Verzeichnis. Alle Dateien innerhalb und unterhalb dieses Verzeichnisses sind dann geschützt.<br />

Wie .htaccess funktioniert<br />

<strong>Webdesign</strong><br />

Der Apache-WebServer wird in der Regel durch die Datei /etc/httpd.conf konfiguriert. Diese<br />

Datei enthält zum einen globale Einstellungen, die den Betrieb des gesamten Servers betreffen und<br />

zum anderen kann für jeden virtuellen Server und jedes Dokumenten-Verzeichnis eine eigene<br />

Konfiguration eingegeben werden (z. B.in welchen Verzeichnissen ausführbare CGI liegen dürfen<br />

oder wer auf diese Seite zugreifen darf). Eine individuelle Konfiguration kann aber nicht nur mit<br />

dieser Datei erfolgen.<br />

Mit einer zweiten Möglichkeit wollen wir uns nun beschäftigen: In jedem Verzeichnis, das individuell<br />

konfiguriert werden soll, wird eine Datei mit dem Namen .htaccess abgelegt, in der die<br />

gewünschten Konfigurationsparameter stehen. Diese sind in Syntax und Semantik identisch zu den<br />

Einträgen in der Datei httpd.conf. Der Name ".htaccess" ist allgemeine Konvention, er kann<br />

in der Datei /etc/httpd.conf beliebig definiert werden.<br />

Damit dise zweite Art der Konfiguration überhaupt funktioniert, muss in der Datei<br />

/etc/httpd.conf festgelegt werden, daß Apache solche Dateien berücksichtig. Dazu sucht man<br />

folgenden Eintrag:<br />

# This controls which options the .htaccess files in directories can<br />

Wie ist robots.txt aufgebaut? 139


<strong>Webdesign</strong><br />

# override. Can also be "All", or any combination of "Options", "FileInfo",<br />

# "AuthConfig", and "Limit"<br />

#<br />

AllowOverride All<br />

Die einzelnen Werte nach "AllowOverride" haben folgende Bedeutung:<br />

• All: alle gültigen Direktiven dürfen verwendet werden.<br />

• None: .htaccess-Dateien werden ignoriert.<br />

• Options: für das Verzeichnis darf die Options-Direktive verwendet werden. Hier kann<br />

beispielsweise festgelegt werden, ob in einem Verzeichnis CGI-Skripte (Options<br />

+ExecCGI) ausgeführt werden dürfen, oder ob der Verzeichnisinhalt angezeigt werden darf,<br />

falls die Datei index.html fehlt (Options +Indexes).<br />

• FileInfo: alle Direktiven bezüglich Dateirechte und -zuordnung dürfen verwendet<br />

werden.<br />

• AuthConfig: für dieses Verzeichnis darf eine individuelle Zugangsberechtigung eingestellt<br />

werden.<br />

• Limit: die Limit-Direktive (betrifft Server-Namen) darf individuell eingestellt werden.<br />

Am häufigsten verwendet wird die .htaccess-Datei in Verbindung mit "Options", "AuthConfig"<br />

zum Paßwortschutz und zur Festlegung eigener Fehlerseiten. Wie bereits erwähnt, muß diese Dateien<br />

nicht zwingenderweise ".htaccess" heißen, sondern man kann einen beliebigen Namen wählen.<br />

Dazu muß in der Datei /etc/httpd.conf der folgende Eintrag geändert werden:<br />

#<br />

# AccessFileName: The name of the file to look for in each directory<br />

# for access control information.<br />

#<br />

AccessFileName .htaccess<br />

Anstelle von ".htaccess" wird ein anderer Name eingetragen.<br />

Sicher sind Sie beim Versuch, eine Seite zu öffnen, schon einmal auf ein Fenster gestossen sein, daß<br />

etwa folgendermaßen aussieht:<br />

Dadurch wird verhindert, dass ein Verzeichnis (und alle seine Unterverzeichnisse) der Website<br />

allgemein zugänglich ist, indem der Zugang nur durch die Eingabe eines Usernamens und des<br />

zugehörigem Paßworts gewährt wird.<br />

Um solche geschützte Verzeichnisse einzurichten, gehen Sie folgendermaßen vor: Erstellen Sie in<br />

dem Verzeichnis, welches Sie mit einem Paßwort schützen wollen, eine Datei namens .htaccess<br />

mit folgendem Inhalt:<br />

AuthUserFile /pfad/zu/einer/passwortdatei<br />

AuthGroupFile /dev/null<br />

AuthName "wieimmerdasheissensoll"<br />

Wie .htaccess funktioniert 140


<strong>Webdesign</strong><br />

AuthType Basic<br />

<br />

require user webmaster<br />

<br />

Bitte ersetzen Sie /pfad/zu/.htpasswd durch einen realen Verzeichnispfad, in welchem sich die<br />

Datei .htpasswd mit den Userdaten befindet. Beim Authentisierungstyp (AuthType) gibt es derzeit<br />

nur den Typ "Basic".<br />

"wieimmerdasheissensoll" können Sie durch eine kurze Nachricht ersetzen, die in der<br />

User-Authentifizierungs-Pop-Up Box erscheint (String mit Leerzeichen in Gänsefüßchen setzen!).<br />

Das Verzeichnis ist jetzt nur für die Person freigegeben, die als Benutzernamen webmaster eingibt.<br />

Nun müssen Sie noch ein Paßwort für den Benutzer webmaster erstellen. Wie das geht, erfahren Sie<br />

weiter unten. Jetzt kann auf das Verzeichnis nur noch mit dem Usernamen webmaster und dem<br />

eingegebenen Paßwort zugegriffen werden.<br />

Man kann die Sperre aber auch nur von der IP-Adresse des Clients abhängen lassen. Zunächst machen<br />

wir mal ganz zu:<br />

AuthUserFile /pfad/zu/.htpasswd<br />

AuthName "wieimmerdasheissensoll"<br />

order deny,allow<br />

deny from all<br />

Jetzt öffnen wir für alle Rechner des C-Netzes 192.168.34.0:<br />

AuthUserFile /pfad/zu/.htpasswd<br />

AuthName "wieimmerdasheissensoll"<br />

order deny,allow<br />

deny from all<br />

allow from 192.168.34.<br />

Hier darf niemand zugreifen, wenn der Name "nobody" nicht in der Paßwort-Datei definiert ist:<br />

AuthUserFile /pfad/zu/.htpasswd<br />

AuthName "wieimmerdasheissensoll"<br />

order deny,allow<br />

deny from all<br />

allow from 192.168.34.<br />

require user nobody<br />

Möchten Sie dagegen einigen Benutzern den Zugriff auf das Verzeichnis ermöglichen, so gehen Sie<br />

bitte wie folgt vor. Erstellen Sie mit dem Programmhtpasswd weitere Benutzer. Nun erstellen Sie in<br />

dem zu schützenden Verzeichnis eine Datei namens .htgroup mit folgendem Inhalt:<br />

logins: webmaster benutzer2 benutzer3<br />

Geben Sie hier einen beliebigen Gruppennamen, gefolgt von einem Doppelpunkt ein, und listen Sie<br />

alle Benutzer durch ein Leerzeichen voneinander getrennt dahinter auf, die Zugriff auf das<br />

Verzeichnis erhalten sollen. Nun müssen Sie noch die .htaccess in dem entsprechenden<br />

Verzeichnis wie folgt anpassen:<br />

AuthUserFile /pfad/zu/.htpasswd<br />

AuthGroupFile /pfad/zu/.htgroup<br />

AuthName "wieimmerdasheissensoll"<br />

AuthType Basic<br />

<br />

require group logins<br />

Wie .htaccess funktioniert 141


Wollen Sie einen einzelnen Benutzer entfernen, so löschen Sie seinen Namen einfach aus der<br />

Auflistung in der Datei .htgroup und gegebenenfalls auch aus der Datei .htpasswd.<br />

Möchten Sie hingegen vielen Benutzern den Zugriff auf das Verzeichnis ermöglichen, so ist die<br />

doppelte Eintragung in .htpasswd und .htgroup etwas lästig. Gehen Sie bitte wie folgt vor.<br />

Erstellen Sie mit htpasswd weitere Benutzer. Nun müssen Sie noch die .htaccess in dem<br />

entsprechenden Verzeichnis wie folgt anpassen:<br />

AuthType Basic<br />

AuthName Sicherheit<br />

AuthUserFile /opt/www/htdocs/geheim/.htpasswd<br />

AuthGroupFile /dev/null<br />

<br />

require valid-user<br />

<br />

Wollen Sie den Schutz des Verzeichnisses aufheben, löschen Sie einfach .htaccess, .htpasswd<br />

und .htgroup in den entsprechenden Verzeichnissen. Wollen Sie dagegen nur einen einzelnen<br />

Benutzer entfernen, so löschen Sie seinen Namen einfach aus der Auflistung in der Datei<br />

.htpasswd.<br />

Paßwort-Datei<br />

Mit den .htaccess-Dateien sind lediglich Strukturen definiert worden. Ohne den Eintrag von<br />

Benutzernamen und Paßwörtern in die Paßwort-Datei kann noch kein einziger Benutzer zugreifen.<br />

Entsprechende Eintragungen werden mit dem Programm htpasswd durchgeführt:<br />

htpasswd [-c] passwordfile username<br />

Nun müssen Sie zweimal das Paßwort für den Benutzer "webmaster" eingeben.<br />

Wird der Parameter "-c"eingegeben, erzeugt das Programm eine neue Paßwortdatei. Wenn schon ein<br />

entsprechender Benutzer existiert, wird das Paßwort geändert.<br />

Benutzernamen und Paßwörter sind frei wählbare Strings; sie haben nichts mit den User-IDs der<br />

Benutzerverwaltung unter UNIX zu tun -- und sie sollten es auch nicht!<br />

Das Paßwort wird verschlüsselt abgelegt, wie man das von den UNIX-Paßwort-Dateien<br />

/etc/passwd bzw. /etc/shadow kennt. Die Verschlüsselung erfolgt jedoch nach einem eigenen<br />

Verfahren. Beispiel für eine Paßwort-Datei:<br />

boss:IN3WY1lATStaY<br />

schmidt:INQaGJBu4yljQ<br />

meier:INqq3xgT4zpp6<br />

huber:INT.EAmojNwN6<br />

Mit dem folgenden Perl-Programmstück kann man auch einen Eintrag in der Passwortdatei erzeugen:<br />

# Passwort basteln aus $name (Name) und $passwd (Passwort)<br />

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />

# Der Name der Psswortdatei steht in der Variablen $PASS<br />

#<br />

# Beim Namen:<br />

# - Umlaute konvertieren<br />

# - alles weg, was nicht Buchstabe ist<br />

# - alles in Kleinbuchstaben umwandeln<br />

$temp = $name;<br />

$temp =~ s/ä/ae/g;<br />

<strong>Webdesign</strong><br />

Wie .htaccess funktioniert 142


$temp =~ s/ö/oe/g;<br />

$temp =~ s/ü/ue/g;<br />

$temp =~ s/Ä/ae/g;<br />

$temp =~ s/Ö/oe/g;<br />

$temp =~ s/Ü/ue/g;<br />

$temp =~ s/ß/ss/g;<br />

$temp =~ tr/a-zA-Z//cd;<br />

$temp =~ tr/A-Z/a-z/;<br />

$namlen = length $temp;<br />

$newpass = crypt($password,substr($password,0,2));<br />

open DAT, ">>"$PASS || die "Fehler \"$!\"beim \Öffnen der Passwortdatei!\n";<br />

print DAT $newuid, ":", $newpass, "\n";<br />

close DAT;<br />

Die folgende Tabelle faßt die verschiedenen Möglichkeiten der Zugriffskontrolle zusammen. Alle<br />

vorgestellten Direktiven können beliebig kombiniert werden, allerdings sind komplexe<br />

Kombiniationen nicht immer ganz einfach zu durchschauen und können auch schon einmal zu<br />

fehlerhaften Reaktionen führen.<br />

require group admin Gruppenzugehörigkeit festlegen. Hier: User der Gruppe "admin"<br />

require user hinz<br />

kunz<br />

require valid-user<br />

User direkt prüfen. Hier: Direkte Userprüfung auf hinz oder kunz<br />

Zugang ok, wenn User in AuthUserFile vorkommt und das Passwort<br />

stimmt<br />

order deny,allow Reihenfolge/Wertigkeit der Rechte festlegen.<br />

deny from all Zugangs-Verbote festlegen. Hier: erstmal darf niemand zugreifen<br />

satisfy all<br />

<strong>Webdesign</strong><br />

Die auf "satisfy" folgenden Rechte müssen erfüllt sein. Hier: alle<br />

Anfordungen<br />

allow from 127.0.0.1 Zugriff nur von der angegebenen IP-Nummer eraubt<br />

allow from 141.39. Zugriff nur vom Netz 141.39.0.0 aus erlaubt.<br />

Bei sehr großen Userzahlen kann die Nutzung des Paßwort-Files sehr uneffizient werden. Über die<br />

Apache-API wird die Möglichkeit geboten, eine eigene Authentifizierung zu entwicklen.<br />

Im Prinzip lassen sich über .htaccess sehr viele Optionen des Apache steuern - nicht nur die oben<br />

erwähnten.<br />

HTML-Editoren<br />

Den perfekten Editor für HTML gibt es nicht. Alle Produkte haben besondere Features - und stets eine<br />

längere Mängelliste. Viele Editoren sind programmierte Geheimnisse für Freaks und auch nur von<br />

solchen verwendbar.<br />

Textbasierte Editoren bieten wenig Komfort und benötigen anfangs als Unterstützung ein<br />

HTML-Handbuch neben der Tastatur. Trotzdem werden sie von Profis bevorzugt eingesetzt. Eine<br />

Erweiterung stellen sogenannte "Makro-Editoren" dar. Hierbei handelt es sich zwar um Texteditoren,<br />

aber durch die Fähigkeit, mit einer bestimmten Tastenkombination oder durch Klicken auf ein Icon<br />

eine beliebige Zeichenfolge in den Text einzufügen, kommen sie dem Anfänger entgegen. Die<br />

wichtigsten Tags sind als Makro abrufbar, womit das ständige Blättern im Handbuch wegfällt, im Text<br />

erscheinen aber die HTML-Tags im Quellformat. Ob Texteditor oder Makroeditor - es wird auf jeden<br />

Fall noch ein Browser zur Kontrolle des Ergebnisses benötigt.<br />

HTML-Editoren 143


<strong>Webdesign</strong><br />

WYSIWYG-Editoren zeigen das Layout im Entstehungsprozeß und setzen immer weniger<br />

HTML-Kenntnisse voraus. Die Vorschau ist jedoch meist nicht verbindlich. Der Grund für die<br />

mangelnde WYSIWYG-Tauglichkeit liegt in HTML selbst: Die Sprache ist nicht standardisiert; der<br />

die Standardisierung hinkt der notorischen Entwicklung neuer Browser-Features hinterher. Wie groß<br />

z. B. die Schrift wird, hängt von der Interpretation des Browsers (Version) ab, der das Ganze umsetztund<br />

außerdem vom Rechnersystem. Ein Apple Mac stellt die gleiche Seite oft ganz anders dar als ein<br />

PC. Zudem kann auch der Benutzer Schriftgröße- und -Art nach eigenen Vorlieben einstellen.<br />

Office-Pakete mit HTML-Fähigkeiten, z. B. Programmpakete wie Star Office oder MS Office bieten<br />

die Möglichkeit, Dokumente direkt in HTML-Code abzulegen. Dabei wird jedoch versucht, möglichst<br />

nahe am Original zu bleiben - was zu einer Unzahl von unnötigen HTML-Anweisungen führt, die nur<br />

das Aussehen beeinflussen sollen. Wenn dabei noch ungewöhnliche Zeichensätze verwendet werden,<br />

ist das Resultat nicht einmal auf jedem PC zu sehen, geschweige denn auf anderen Plattformen. Aus<br />

den eben erwähnten Formatierungsproblemen sind solche Seiten nur bedingt universell für das<br />

Web-Design einsetzbar. Im Firmen-Intranet, wo man davon ausgehen kann, daß alle Rechner die<br />

gleiche Ausstattung und Softwarebasis besitzen, kann man propietäre Formate einsetzen, nicht jedoch<br />

bei einer weltweiten Internet-Präsenz.<br />

Konventer-Programme setzen auf professionelle Satz- und Layoutprogramme (z. B. QuarkXPress,<br />

Pagemaker) auf und erzeugen aus den grafischen Layouts HTML-Seiten. Ihre Entwicklung steckt<br />

noch in den Kinderschuhen.<br />

Professionelle HTML-Entwickler ziehen manuell geschriebenen Code vor, da es oft genauso lange<br />

dauert, programmbedingte Unzulänglichkeiten auszubügeln wie einen sauberen Code manuell<br />

aufzubauen. Und selbst für den Gelegenheitsschreiber sind HTML-Kenntnisse sind stets nützlich. Auf<br />

jeden Fall sollte man das Ergebnis seiner Arbeit mit den beiden verbreiteten Browsern von Netscape<br />

und Microsoft überprüfen.<br />

Design-Regeln<br />

Zweck des World Wide Web ist es immer noch, untereinander verknüpfte Informationen<br />

bereitzustellen. Natürlich sollen die Webseiten keine Textwüsten auf Einheitsgrau sein, aber auf der<br />

anderen Seite sind Seiten, auf denen es an allen Ecken und Enden zappelt, genauso abschreckend.<br />

Deshalb folgen nun ein paar Tips für Webseiten-Designer.<br />

Egal, ob das WWW-Angebot eine 'Textwüste' wird oder ob man es schrill und bunt gestaltet, man<br />

muß sich Gedanken über die Stuktur des Angebotes machen. Dabei gibt es zwei Möglichkeiten :<br />

• Ein flaches Angebot, bei dem von der Startseite (Homepage) viele Verzweigungen ausgehen<br />

und dort nach ein oder zwei Stufen das Ende erreicht ist.<br />

• Ein tiefes Angebot, bei dem wenige Links von der Homepage in jeweils tief verzweigte<br />

Strukturen münden.<br />

Meist wird sich eine Mischform ergeben. Eine 'Textwüste kann man relativ einfach auflockern, indem<br />

man ein paar kleine Bilder einstreut.<br />

Beim Gestalten einer HTML-Seite sollte man auch an das Bildschirmformat denken. Mehr als eine<br />

Schreibmaschinenseite sollte eine einzelne Webseite nur dann sein, wenn es sich um einen<br />

zusammenhängenden Text handelt. Übergeordnete Seiten sollte in der Regel auf einen Bildschirm<br />

passen.<br />

Design-Regeln 144


Empfehlungen für das Gestalten von HTML-Seiten<br />

• Verwenden Sie im Title-Tag möglichst viele ausdruckstarke Begriffe, die auch wirklich auf<br />

den Inhalt Ihrer Seite zutreffen. Suchmaschinen berücksichtigen zumindest den Title-Tag.<br />

• Formulieren Sie Ihre Texte kurz und verständlich. In der Regel sind Singular- und<br />

Präsens-Formulierungen angebracht.<br />

• Vermeiden Sie lange, unstrukturierte Texte. Jeder lange Text läßt sich über eine Einstiegsseite<br />

mit Inhaltsverzeichnis (das gleichzeitig als Link dient) in kleinere Einheiten zerlegen.<br />

• Organisieren Sie die Texte Ihres Dokumentes im Hinblick auf die Inhaltsschwerpunkte. Diese<br />

Passagen sollten möglichst schnell aufzufinden sein. Verteilen Sie eine Aussage<br />

(Informations-Granulat) nicht auf mehrere Dokumente. Strukturieren Sie die Dokumente.<br />

• Versuchen Sie Dokumente zu vermeiden, deren Verständnis von vorhergehenden und<br />

nachfolgenden Dokumenten abhängen. Schreiben Sie möglichst kontextunabhängige<br />

Dokumente.<br />

• Gruppieren Sie zusammengehörende Informationen in semantischer Sicht durch eine<br />

zweckmäßige Gliederung und in visueller Sicht durch Überschriften und Auflistungen.<br />

• Gehen Sie sparsam mit Hervorhebungen durch Fettdruck, Kursivschrift, Text in<br />

Großbuchstaben und langen Links um. Benutzen Sie Hervorhebungen nur, wenn diese das<br />

Auffinden und Verstehen verbessern.<br />

• Halten Sie das Layout der Seite übersichtlich, das heißt im Regelfall so einfach wie möglich.<br />

Verwenden Überschriftstags (H1...H6) zur Hervorhebung und Aufzählungen.<br />

• Benutzen Sie ein einheitliches, konsistentes Layout über alle Dokumente einer Publikation.<br />

Das vereinfacht auch die Erstellung neuer Seiten (z. B. Verwendung fertiger Kopf- und<br />

Fußteile).<br />

• Wenn Sie vorhandene Textdateien mit einem Konverter-Programm aufbereiten, dann ist ein<br />

Nachbearbeiten auf jeden Fall erforderlich.<br />

• Lassen Sie deutlich erkennen, dass ein Link auch ein Link ist. Unterstreichen Sie also keinen<br />

Text. Grafiken sollten aussagekäftig sein, und nicht die Ladezeit Ihrer Seite unnötig<br />

verlängern.<br />

• Verlinken Sie auf themenverwandte Seiten. Sie erhöhen nicht nur die Zugriffszahlen<br />

derjenigen Seiten, sondern auch die Attraktivität Ihrer eigenen Seiten.<br />

• Gestalten Sie Ihr internes Menusystem (Linksystem) einheitlich. Erschweren Sie Ihrem<br />

Besucher die Navigation nicht durch viele verschiedene Navigationssysteme.<br />

• Bringen Sie innerhalb der Verzweigung logische Querverweise an. Dazu gehören auch<br />

sogenannte 'Shortcuts' (Verweise zu häufig benötigten Stellen). Die Realisierung kann z. B.<br />

durch eine Kopfleiste am Anfang oder am Ende jeder Seite erfolgen, die alle 'Shortcuts'<br />

enthält.<br />

Aktualität<br />

<strong>Webdesign</strong><br />

Ein Webangebot muß möglichst aktuell sein - wie eine Tageszeitung. Liefern Sie Ihren Lesern<br />

handfeste Informationen. Langatmiges Geschwafel sorgt dafür, daß kaum jemand weiterliest. Sorgen<br />

Sie für Quervernetzung der einzelnen Seiten. Schließlich sollten die Daten und Infos aktuell sein und<br />

ständig ergänzt werden. Denn auf einer seit Monaten nicht mehr aktualisierten Homepage läßt sich ein<br />

Surfer so schnell nicht mehr blicken. Bieten Sie Seiten wie "News" oder "Aktuelles" nur an, wenn Sie<br />

diese ständig pflegen wollen und können. Nichts ist so peinlich wie "Alles Gute zum Neuen Jahr" auf<br />

der News-Seite im Monat Juni. Deshalb versprechen Sie auch nichts, was Sie nicht halten können.<br />

Versprechen Sie nichts, was Sie nicht halten können<br />

Links, die auf ein Baustellenschild führen, verärgern den Leser wie leere Versprechungen. Der Surfer<br />

sieht einen vielversprechenden Querverweis, klickt ihn an und dann? Nichts! Niente! Wenn das<br />

Angebot noch so rudimentär ist, daß man ein Baustellenschild aufstellen müßte, dann sollte man es<br />

Empfehlungen für das Gestalten von HTML-Seiten 145


noch nicht zeigen. Besser ist es bei Menüs, den entsprechenden Verweis als ganz normalem Text zu<br />

belassen. Dann sieht der Besucher: "Da kommt demnächst was." und er wird mal wieder nachsehen<br />

kommen. Wenn natürlich monatelang das Link nicht mit Info gefüllt wird, dann ist es auch schlecht.<br />

Auf lange Sicht werden nur die Server im Netz überleben, die echte Informationen bieten, die gut<br />

aufbereitet sind. Ansonsten ist ein WWW-Angebot ständig im Umbau - also nichts, was man extra<br />

erwähnen müßte.<br />

Bunt und zappelig<br />

Das sind WWW-Seiten, auf denen sich an allen Ecken und Enden etwas bewegt: blinkende Schrift,<br />

animierte GIFs, Laufschrift. Seit animierte GIFs erfunden wurden, zappelt es allenthalben. So schön<br />

es für einen selbst sein mag, animierte Bilder auf seiner Homepage zu sehen, so nervig ist es für<br />

Besucher, die sich häufig im Web herumtreiben. Außerdem ziehen Bewegungen auf der Webseite<br />

zuviel Aufmerksankeit auf sich und stören auf Dauer beim konzentrierten Lesen des restlichen Textes.<br />

Verzichten Sie also auf die Wackelbildchen. Ein knalliges 'NEU' reicht schon, es muß nicht noch<br />

blinken. Laufschriften sind für Schnelleser zu langsam und für Langsamleser zu schnell - also so oder<br />

so ungeeignet. Ein Icon oder eine Grafik wirken genauso gut.<br />

Apropos Icons: Es gibt massenhaft Icon-Sammlungen, aus denen man sich bedienen kann. Noch<br />

besser ist es aber, wenn man sich die Sinnbilder selbst malt. Das ist gar nicht so schwer. Fangen Sie<br />

doch damit an, ein vorhandenens Icon zu modifizieren. Übrigens reichen für ein Icon normalerweise<br />

16 - 32 Farben - dadurch wird die Bilddatei nicht nur kleiner, sondern es gibt auch keine Probleme mit<br />

der Darstellung beim Surfer, wenn dessen Grafik nicht dem letzten Stand der Technik entspricht.<br />

Waagrechte Linien: Keine Zeitschrift und kein Buch strukturiert seinen Inhalt durch waagrechte<br />

Linien. Wenn sie nicht gezielt als Gestaltungselement dienen sollen, sind sie nur von Übel - egal, ob<br />

sie mit erzeugt oder ob sie durch farbige GIF-Bilder dargestellt werden.<br />

Bilder<br />

<strong>Webdesign</strong><br />

• Riesige Bilder: Man kann mit einem kleinen Übersichtsbild (sogenanntes 'Thumbnail') auf ein<br />

großes Bild verweisen. Noch besser ist eine Größenangabe (in KByte) zum Thumbnail dazu.<br />

Geradezu verdammungswürdig sind Bilder, die relevanten Text enthalten.<br />

• Die Browser verstehen zumindest die beiden Grafikformate GIF (*.gif) und JPEG (.jpg).<br />

Setzen Sie JPEG für große Bilder mit vielen verscheiden Farben und Farbübergängen ein. Das<br />

GIF-Format eignet sich für kleinere Grafiken, wie zum Beispiel Icons oder Buttons. Sind Sie<br />

sich nicht sicher welches Format das richtige Format ist, so testen Sie beide Formate.<br />

• Verwenden Sie das ALT-Attribut für IMG-Tags. Der Benutzer wird während der Ladezeit<br />

oder bei aisgeschalteter Bildanzeige über das informiert was hinter der Grafik steckt. Auch<br />

wenn der Mauscursor etwas länger über dem Bild verweilt, wird der ALT-Text angezeigt.<br />

Dadurch kann man dieses Feature für eine griffige Bilderklärung verwenden. Notfalls nehmen<br />

Sie ALT="".<br />

• Vergessen Sie auch nicht die Größenangaben für Ihre Grafiken. Mit den den Tags WIDTH<br />

und HEIGHT teilen Sie dem Browser mit, wie groß die zu ladenden Grafiken sind. Es wird<br />

ein Rahmen für die noch nicht sichtbaren Grafiken dargestellt und so die Seite schon wärend<br />

des Ladevorganges korrekt aufgebaut.<br />

• Wenn Sie für Ihre Navigationssystem eine Imagemap vorsehen, so denken Sie daran, daß<br />

manche User sich die Seiten ohne Grafiken betrachten. Stellen Sie also alternativ eine<br />

Textversion zur Verfügung.<br />

• Bedenken Sie bei der Konzeption Ihrer Webseiten daran, daß noch nicht jeder über eine<br />

High-Speed ISDN-Leitung verfügt, und verzichten Sie auf unnötige Grafiken.<br />

Versprechen Sie nichts, was Sie nicht halten können 146


Frames<br />

Bei Frames scheiden sich die Geister. Puristen sagen, wer Frames benutzt, sei einfach nicht in der<br />

Lage, sein Angebot zu strukturieren. Das ist sicher bei manchen Angeboten richtig. Auf der anderen<br />

Seite kann der sparsame Einsatz von Frames das Navigieren durch die WWW-Seiten zu erleichtern.<br />

Nachteil ist auf jeden Fall, daß sich Infos, die innerhalb eines Frames dargestellt werden, nicht einfach<br />

in die 'Bookmarks' übernommen werden können.<br />

Viele Programmierer stellen mit dem FRAME-Tag Unfug an. Auf einer Seite sollten sich maximal drei<br />

Frame-Abteilungen tummeln. Ein Frame kann dabei generelle Navigationswerkzeuge für die<br />

Homepage vorhalten, der zweite Frame birgt einen Stichwort-Index und der dritte zeigt den<br />

eigentlichen Inhalt. Mehr Frames braucht niemand.<br />

Verlinken Sie auf externe Seiten Seiten, so sollte eindeutig sein, daß der Inhalt derjenigen Seite nicht<br />

von Ihnen ist. Wenn ein Link zu einem anderen Server führt, laden Sie dieses Link nicht innerhalb des<br />

Frames. Das schränkt die dargestellte Fläche der angesteuerten Seite ein. Laden Sie fremde Seiten<br />

grundsätzlich mit der Option target= "_parent" oder target="_blank" im -Tag.<br />

Farben<br />

Noch immer gibt es grafisch unempfindliche Naturen, die hellblaue Schrift auf knalligem Rot für chic<br />

halten. Über Ästhetik mag man streiten, nicht aber über Lesbarkeit. Und diese Farbkombination ist<br />

ebenso ätzend wie Gelb auf Grün oder Pink auf Hellblau. Als optische Killer Nummer zwei haben<br />

sich Hintergrundgrafiken erwiesen. Ein im Grafikprogramm kontrastarm aussehendes Bild kann im<br />

Browser stärker stören als vorgesehen, insbesondere wenn der Browser dithert. Denken Sie auch an<br />

die immer noch zahlreichen Benutzer im Netz, die vor Graustufenmonitoren sitzen. Am besten<br />

verwenden Sie in der Regel dunkle Schrift auf hellem Grund.<br />

Wählen Sie für Ihre Links eine deutlich andere Farbe als die Textfarbe.<br />

Gestalten Sie alle Ihre Links in der gleichen Farbe, es sei denn, Sie können deutlich zum Ausdruck<br />

bringen, daß auch der anderfarbige Link ein Link ist. Bei den Benutzern hat die blaue oder violette<br />

Farbe und die Unterstreichung für Links einen hohen Wiedererkennungswert. Die Farbe kann der<br />

allgemeinen Erscheinung Ihrer Webseite angepaßt werden, auf die Untersteichung sollten Sie jedoch<br />

nicht verzichten.<br />

Wählen Sie im BODY-Tag nicht die gleichen Farben für Link (LINK), visited Link (VLINK),<br />

animated LINK (ALINK). Ein Link erhält die VLINK-Farbe, wenn dieser bereits besucht wird. Die<br />

ALINK-Farbe erscheint solange der Link gedrückt ist. Für ALINK empfiehlt sich eine Farbe, die in<br />

der Nähe der LINK-Farbe liegt.<br />

Bewahre uns vor Plug-ins<br />

<strong>Webdesign</strong><br />

Shockwave hier, Real Audio da, usw. An jeder Ecke wachsen neue Plug-Ins. Und jeder Autor<br />

verwendet einen anderen Multimedia-Standard, für jede Homepage benötigt der Surfer andere<br />

Plug-Ins. Das alles kostet nicht nur Download-Zeit, sondern müllt dem Besucher der Homepage auch<br />

die Platte voll. Dazu kommen höhere Hardwareanforderungen, Inkompatibilitäten der Plug-Ins<br />

untereinander und mögliche Softwarefehler. Überlegen Sie also, ob Multimedia-Erweiterungen<br />

wirklich nötig sind.<br />

Frames 147


Nutzlose Applets<br />

Die Anzahl der nutzlosen Applets und Scripts steigt expotentiell. Dabei handelt es sich um<br />

Besucher-Zähler, Lauftexte oder Animationen. Solche Applets und Scripts können nützlich sein,<br />

beispielsweise für Suchsysteme, Pull-Down-Menüs zur Benutzerführung und zur Prüfung von<br />

Formularen. Bedenken Sie jedoch, daß durch Viren und "trojanische Pferde" die Scripts bei den<br />

Benutzern in Verruf geraten sind und oft im Browser deaktiviert wurden. Verwenden Sie Scripts also<br />

sparsam oder überhaupt nur im Intranet. Und bevor Sie das Javascript-Laufband auf Ihrer Homepage<br />

unterbringen, bedenken Sie, daß andere User dasselbe tun. Der Renner unter den Nutzlosigkeiten ist<br />

jedoch der Besucherzähler, der bei jedem Aufruf Ihrer Homepage verändert wird. Das verhindert<br />

nämlich, daß die Seiten im Proxy-Cache eines Providers zwischengespeichert werden können, und der<br />

Surfer bessere Ladezeiten bekommt. Besser ist es, eine Serverstatistik zu veröffentlichen, die täglich<br />

oder wöchentlich aktualisiert wird.<br />

Testen Sie Ihre Homepage<br />

Nichts ist peinlicher als eine fehlerhafte Homepage. Und Bugs schleichen sich schnell ein. Was auf<br />

Ihrem Rechner lokal noch nett aussieht, kann sich bei einer kritischen Probefahrt schnell als<br />

grauenhaft herausstellen. Die wichtigsten Tests:<br />

• ohne Grafik: Viele Surfer haben bei ihrem Trip durchs Web die Grafikdarstellung<br />

abgeschaltet. Stimmt die Seitenaufteilung noch, wenn die Grafiken Ihrer Homepage<br />

ausgeknipst sind?<br />

• Browser-Kompatibilität: Internet-Explorer und Netscape Navigator interpretieren einige Tags<br />

unterschiedlich. Probieren Sie auch aus, wie Ihre Homepage mit beiden Browsern aussieht.<br />

Probieren Sie es auch mal mit einem Textbrowser (z. B. Lynx).<br />

• Rechtschreibung: Lassen Sie Ihre Homepage gegenlesen, und nutzen Sie<br />

Rechtschreib-Programme.<br />

• Links ins Nichts: Testen Sie regelmäßig alle Links auf Ihrer Homepage.<br />

• Struktur: Stimmt die Struktur Ihres Servers? Findet der User von jeder Unterseite auf die<br />

Homepage zurück? Gibt es genügend Querverweise? Viel Web-Angebote sind reine<br />

Menüsysteme.<br />

• Erreichbarkeit: Haben Sie ein Mail-Link zu Ihrer E-Mail-Adresse auf die Seite gepackt? Gibt<br />

es einen Maillink zum Webmaster?<br />

Suchmaschinen<br />

Wenn ein potentieller Kunde Informationen im Internet mit einer Suchmaschine sucht erhält er eine<br />

Liste mit WWW-Seiten, die seinen Suchbegriffen mehr oder weniger gut entsprechen. Da die<br />

Suchmaschinen oft Tausende von Seiten finden, ist es entscheidend, daß Ihre Seite am Anfang dieser<br />

Liste steht, sonst wird sie nicht gesehen. Die Software der Suchmaschinen legt die Reihenfolge fest,<br />

mit der die Ergebnisse angezeigt werden. Einige Suchmaschinen beschreiben den Algorithmus,<br />

nachdem die Reihenfolge festgelegt wird, andere nicht.<br />

Suchmaschinen werten Ihre Seiten auf zwei Arten aus: sie sehen sich den Seitentext an und sie werten<br />

die Meta-Tags aus. Meta-Tags sind besondere HTML Befehle, die die Seite für die Suchmaschine<br />

beschreiben und Schlüsselwörter angeben.<br />

Keywords<br />

<strong>Webdesign</strong><br />

Die richtigen Schlüsselwörter können Ihnen eine gute Position bei den Suchmaschinen sichern. Stellen<br />

Sie eine Liste mit Schlüsselwörtern auf. Schreiben Sie sich etwa 20 - 50 Schlüsselwörter auf, eins in<br />

Nutzlose Applets 148


<strong>Webdesign</strong><br />

jede Zeile. Wenn Sie diese Liste haben, Numerieren Sie die Schlüsselwörter nach ihrer Wichtigkeit.<br />

Sie müssen sich entscheiden. Haben Sie eine lange Liste von Schlüsselwörtern, werden Ihre Seiten<br />

zwar auch bei vielen Suchbegriffen gefunden, aber nie an der Spitze der Suchergebnisse stehen.<br />

Nehmen Sie nur wenige Schlüsselwörter, erhöht sich der Anteil dieser und Ihre Seite wird oben im<br />

Suchergebnis erscheinen. Wenn Ihre Liste mit Schlüsselwörtern kurz ist und Sie sicher sind, daß die<br />

Interessenten genau nach diesen Begriffen suchen, sollten Sie auch gezielt vorgehen. Wenn nicht,<br />

müssen Sie Ihre Schlüsselwörter breit streuen. Fragen Sie sich, was Ihr Kunde als Suchbegriffe<br />

eingeben würde? Überlegen Sie sich alle Begriffe, die eine Beziehung zu Ihrer Seite haben und tragen<br />

Sie diese in Ihre Liste ein. Überlegen Sie weiter: " Was könnte ein Kunde suchen ?" Das hilft Ihnen<br />

weiter. Probieren Sie ein paar Begriffe bei verschiedenen Suchmaschinen aus.<br />

• Beschreiben Sie Ihre Seite, nicht Ihre Firma. Der Sinn Ihrer Anstrengungen ist es, den<br />

Kunden zu Ihrer Webseite zu lotsen. Wenn der Kunde auf Ihrer Seite ist, können Sie Ihre<br />

Firma beschreiben. Wenn Sie eine Beschreibung Ihrer Seite erstellen, sagen Sie dem Kunden,<br />

warum er Ihre Seite besuchen muß. Der Kundesucht nach einer Webseite nicht nach einem<br />

Jahresbericht.<br />

• Testen Sie Ihre Stichworte. Nehmen Sie Ihre Liste zur Hand und besuchen Sie die großen<br />

Suchmaschinen. Geben Sie die Schlüsselwörter eins nach dem anderen ein und beobachten,<br />

was als Ergebnis in den Suchlisten erscheint. Achten Sie auf die Beschreibung der ersten paar<br />

Einträge und Sie haben eine gute Möglichkeit, weitere Schlüsselwörter zu entdecken.<br />

• Benutzen Sie den Plural. Wenn Sie Ihre Liste vollständig haben, denken Sie auch an den<br />

Plural Ihrer Schlüsselwörter. Wenn Ihre Schlüsselwörter im Singular eingetragen sind, wird<br />

Ihre Seite bei einer Suche nicht erscheinen und alle Ihre Mühen waren umsonst. Ihre Seite<br />

wird andererseits gefunden, wenn nach dem Singular gesucht wird.<br />

• Vermeiden Sie häufige Begriffe. Vermeiden Sie Begriffe, die mit dem Internet stark<br />

zusammenhängen. Die Suchmaschinen ignorieren teilweise zu häufig vorkommende Begriffe.<br />

Oder Ihre Seite geht in zigtausend Fundstellen unter.<br />

• Fassen Sie Schlüsselwörter zu Phrasen zusammen. Dies ist eine großartige Taktik für den<br />

Meta Keyword Bereich. Wenn Sie suchen nehmen Sie doch auch nicht nur einen Begriff.<br />

Normalerweise wird nach Phrasen wie 'Autohaus Meier' gesucht. Wenn in Ihrem<br />

Schlüssel-Bereich die<br />

ganze Phrase zwischen den Kommas steht,dann stimmt dar Suchbegriff mit Ihrem ganzen<br />

Keyword überein, anstatt daß drei Schlüsselwörter passen würden, falls Sie eingetragen hätten. Dies bringt Ihre<br />

Seite weiter nach vorne.<br />

• Analysieren Sie Ihre Mitbewerber Sehen Sie sich den Quelltext der Internetseiten Ihrer<br />

Wettbewerber an. Hier finden Sie sicher weitere interessante Anregungen zu Ihren<br />

Schlüsselwörtern.<br />

• Benutzen Sie ähnliche Suchbegriffe. Suchen Sie z.B. einmal bei einer Suchmaschine (Atavista,<br />

Exite, Fireball, etc.) nach einem Begriff und sehen Sie sich an, welche ähnlichen Suchbegriffe<br />

Ihnen vorgeschlagen werden. Eine gute Quelle, die Liste mit Ihren Schlüsselwörtern weiter<br />

auszubauen.<br />

• Kombinieren Sie Schlüsselwörter. Suchen Sie Kombinationen von Schlüsselwörtern, die in<br />

den Suchmaschinen wenige Treffer bringen. Bei diesen Kombinationen haben Sie größere<br />

Chancen, mit Ihren Seiten weit vorn zu landen.<br />

• Tippfehler Bei der Eingabe von Suchbegriffe passieren Fehler. Versuchen Sie einmal, Ihre<br />

Schlüsselwörter so schnell wie möglich einzugeben. Tippfehler werden auch Ihren Kunden<br />

passieren. Nutzen Sie diese Chance, um bei fehlerhafter Eingabe gut zu finden zu sein.<br />

• Frames Die Suchmaschinen werten den Inhalt Ihrer Seite auf relevante Schlüsselwörter aus.<br />

Der Inhalt Ihrer Seite bestimmt die Position, die Ihre Seite auf eine Suchabfrage hineinnimmt.<br />

Die Struktur Ihrer Seite und das Seitenlayout (Frames, Tabellen, Grafiken) bestimmen Ihre<br />

Position in den Suchmaschinen. Wenn Sie auf Ihren Seiten Frames benutzen, sollten Sie bei<br />

den Suchmaschinen eine Seite anmelden, die keine Frames hat, da einige Suchmaschinen<br />

keine Seiten mit Frames durchsuchen können und evtl. nur die Frameset-Information<br />

Keywords 149


analysieren und so zu einer schlechten Position für Ihre Seite kommen. Verwenden Sie<br />

gegebenenfalls Kommentare. Setzen Sie die wichtigsten Keywords in den Seitentitel!<br />

Beginnen Sie Ihren Seitentext mit einer Beschreibung des Inhalts, die möglichst viele<br />

Keywords umfaßt. Verwenden Sie das ALT-Tag für Grafiken um auch hier Ihre<br />

Schlüsselwörter unterzubringen.<br />

Meta-Tags<br />

Mit den Meta-Tags keywords und description können Sie den Suchmaschinen wichtige<br />

Informationen geben. Überschreiten Sie nicht die vorgegebene Maximallänge von 1024 Zeichen für<br />

die Keywords und entwerfen Sie eine ansprechende Beschreibung Ihrer Seite. Dies wird Ihre<br />

Visitenkarte in den Suchmaschinen, nutzen Sie diese Gelegenheit und holen Sie die Kunden auf Ihre<br />

Seite.<br />

Meta-Tags sind besondere HTML Kommandos im Header Ihrer Internet Seite, die von einem Browser<br />

nicht angezeigt werden. Die Meta-Tags enthalten Informationen über die Informationen in Ihrer Seite.<br />

Sie können mit diesen Meta-Tags der Suchmaschine Informationen über Schlüsselwörter und eine<br />

Beschreibung des Seiteninhaltes angeben. Nicht alle Suchmaschinen werten die Meta-Tags aus. Aber<br />

alle wichtigen Suchmaschinen werten die Meta-Tags aus.<br />

Sie können mit Hilfe der Meta-Tags vorgeben, wie Ihre Seite im Suchergebnis angezeigt wird und<br />

auch Schlüsselwörter direkt vorgeben. Bis zu 200 Schlüsselwörter sind erlaubt. Sie können hier<br />

zusätzlich auch Suchbegriffe aufführen, die nicht im Text erscheinen.<br />

Meta-Tag keywords<br />

Im Meta-Tag keywords können Sie die Schlüsselwörter für Ihre Seite angeben. Geben Sie hier die<br />

Schlüsselwörter ein, die Sie im vorigen Abschnitt bestimmt haben. Achten Sie darauf, die<br />

Schlüsselwörter nicht zu oft (mehr als sieben Mal) zu wiederholen. Einige Suchmaschinen erkennen<br />

dies als 'spamdexing' und bestrafen Sie, indem sie Ihre Seite ans Ende der Suchergebnissse stellen.<br />

Stellen Sie die relevanten Schlüsselwörter an den Anfang Ihres Meta-Tags. Die Schlüsselwörter am<br />

Anfang werden höher bewertet als Schlüsselwörter am Ende der Liste. Trennen Sie die<br />

Schlüsselwörter jeweils mit Komma voneinander und sparen Sie sich dabei das Leerzeichen nach dem<br />

Komma! Beispiel:<br />

<br />

Meta-Tag description<br />

Mit dem Meta-Tag description legen Sie die Beschreibung Ihrer Seite fest. So wird Ihre Seite<br />

dann auch von der Suchmaschine im Suchergebnis angezeigt. Die Beschreibung Ihrer Seite muß so<br />

interessant sein, daß Ihr potentieller Kunde dem Verweis auf Ihre Seite auch folgt. Machen Sie die<br />

Beschreibung für Ihren Kunden interessant -- nicht für die (Such-)Maschine!<br />

Sagen Sie, warum es lohnenswert ist, Ihre Seite zu besuchen. Welchen Vorteil hat Ihr Kunde dadurch?<br />

Ist Ihre Beschreibung ansprechend und interessant? Würden Sie selbst diese Seite nach Ihrer<br />

Beschreibung besuchen wollen? Hilft Ihren Kunden diese Seite weiter? Begrenzen Sie Ihr Meta-Tag<br />

description auf 150 Zeichen (Leerzeichen eingeschlossen). Längere Beschreibungen werden bei<br />

manchen Suchmaschinen abgeschnitten. Beispiel:<br />

<br />

Die wichtigsten META-Tags:<br />

keywords<br />

<strong>Webdesign</strong><br />

Meta-Tags 150


Unter welchen Begriffen soll man die Seite finden?<br />

<br />

description<br />

Beschreibung der Webseite oder des Anbieters der Seite<br />

<br />

author<br />

Wer schrieb die Webseite? <br />

rating<br />

Damit die Seite nicht unter den "Red Light District" kommt ;-)<br />

<br />

robots<br />

Robots von welchen Sites dürfen denn die Seite abscannen?<br />

<br />

revisit<br />

Wann soll der Robot denn wieder nachschauen?<br />

<br />

Content-Type<br />

Was für ein Zeichensatz (charset) Wird verwendet? (latein, japanisch, etc.)<br />

<br />

Seitentitel und -text<br />

<strong>Webdesign</strong><br />

sind neben den Meta-Tags die Quelle für Ihre Schlüsselbegriffe. Gerade, wenn Sie auch hier Ihre<br />

Schlüsselworte gezielt einsetzen, können Sie Ihr Suchergebnis entscheidend verbessern. Die<br />

Suchmaschinen bewerten Ihre Schlüsselwörter nach Position und Anteil am gesamten Text. Wenn Sie<br />

folgendes beachten, wird Ihre Seite eine gute Bewertung erreichen:<br />

• Bringen Sie Ihre besten Schlüsselwörter an den Anfang von Title Tag, Meta-Tags und in den<br />

ersten Absatz Ihres Textes.<br />

• Wie oft wird Ihr Schlüsselwort im Titel oder im Text wiederholt? Wiederholung erhöht zwar<br />

die Relevanz Ihres Schlüsselwortes, aber einige Suchmaschinen beginnen, diese<br />

Wiederholung zu erkennen und mit einer schlechten Position im Suchergebnis zu bestrafen.<br />

Sie können diesem jedoch begegnen, indem Sie Ihren Text kurz halten. Damit brauchen Sie<br />

keine Wiederholungen um den Anteil der Schlüsselwörter am Text hoch zu halten.<br />

• Bringen Sie Schlüsselwörter zusammen, die auch sinngemäß zusammen gehören und nach<br />

denen in dieser Kombination wahrscheinlich von Ihren Kunden gesucht wird.<br />

• Das TITLE-Tag zeigt den Seitentitel an, der im Browserfenster erscheint. Viele Surfer<br />

beachten diesen Text kaum, viele Suchmaschinen gewichten ihn aber. Machen Sie Ihren<br />

Seitentitel interessant und bringen Sie Schlüsselwörter unter.<br />

• Die Suchmaschinen sortieren die Seiten nach dem Anteil der Schlüsselwörter im jeweiligen<br />

Dokument. Wenn Ihre Seite zum Beispiel nur die beiden Worte 'autohaus meier' enthalten<br />

würde, wäre sie am Beginn von jedem Suchergebnis nach 'autohaus meier', da diese<br />

Schlüsselwörter zu 100 % im Text enthalten sind. Es ist somit nicht entscheidend, wie oft ein<br />

Schlüsselwort im Text vorkommt, sondern vielmehr wie hoch sein relativer Anteil am Text<br />

ist. Dies trifft auch auf den Seitentitel zu.<br />

• Schlüsselwörter in -Überschriften werden von den Suchmaschinen stärker<br />

gewichtet. Nutzen Sie daher Überschriften im Text, um Ihren Text sinnvoll zu strukturieren.<br />

• Auch die alternativen Bildtexte werden von den Suchmaschinen analysiert. Wiederholen Sie<br />

auch hier Ihre Schlüsselwörter.<br />

Seitentitel und -text 151


Optimieren Ihrer Seite<br />

] Melden Sie Ihre Seite vorerst bei nur einer Suchmaschine an. Überprüfen Sie den Status Ihrer URL<br />

und warten Sie, bis Ihre Seite in den Index aufgenommen wurde. Suchen Sie in der Suchmaschine<br />

nach den angegebenen Schlüsselwörtern und prüfen, an welcher Stelle Ihre Seite gelistet wird.<br />

Entspricht das Suchergebnis noch nicht Ihrer Erwartung, so müssen Sie Ihre Seite weiter bearbeiten.<br />

Gehen Sie dabei wie folgt vor:<br />

• Wird Ihre Seite überhaupt gefunden?<br />

• Haben Sie die Schlüsselwörter im TITLE-Tag, in den Meta-Tags und im Seitentext eingefügt?<br />

• Welche Schlüsselwörter werden von den Seiten benutzt, die vor Ihrer Seite in der<br />

Suchmaschine rangieren?<br />

Nun können Sie Ihre Seite bei den anderen Suchmaschinen anmelden. Sie können Anmeldedienste<br />

z.B: von Klug Suchen (http://www.klug-suchen.de/) oder Submit It! (www.submit-it.com/) nutzen<br />

oder aber Ihre Seite selber anmelden.<br />

Die Suchmaschinen durchsuchen Ihre Seite automatisch. Sie bräuchten also nur Ihre Hauptseite<br />

anzumelden. Es kann aber etwas dauern, bis alle Ihre Seiten vom Robot besucht worden sind. Melden<br />

Sie Ihre Seiten von Hand an. So können Sie sichergehen, daß diese bald im Index der Suchmaschine<br />

gespeichert sind. Wenn die Seite nicht mehr existiert oder die Stuktur Ihrer WWW-Seiten sich<br />

geändert hat melden Sie Ihre Seite noch einmal bei der Suchmaschine an. Tote Links werden dann aus<br />

dem Index entfernt.<br />

Spamindexing<br />

<strong>Webdesign</strong><br />

Mogeln kann man leider überall. Auch bei den Suchmaschinen gibt es Tricks, um zu einer besseren<br />

Plazierung zu kommen. Aber die Suchmaschinen achten vermehrt auf diese Spam Techniken. Seien<br />

Sie also vorsichtig, wenn Sie diese Tricks verwenden. Eventuell wird auch Ihre Seite gesperrt!<br />

'Spamdexing' setzt sich zusammen aus den Worten 'spamming' und 'index'. Es beschreibt die Technik,<br />

Information in eine Webseite zu schleusen, so daß die Seite von der Suchmaschine in einer guten<br />

Position eingeordnet wird. Generell ist spamdexing das Einbringen von Informationen in Ihre Seite,<br />

die der Benutzer nicht sehen kann, die aber das Ranking in den Suchmaschinen beeinflussen. Dafür<br />

gibt es viele Möglichkeiten:<br />

Wenn Sie ein Schlüsselwort mehrere hundert Male auf Ihrer Webseite unterbringen, wird die<br />

Suchmaschine Ihre Seite in einer besseren Position anzeigen als die Seiten Ihrer Wettbewerber. Diese<br />

Schlüsselwörter werden üblicherweise am Ende der Seite plaziert, so daß der Leser sie nicht sieht.<br />

Oder sie werden für den Leser (nicht für die Suchmaschine) unsichtbar gemacht (Textfarbe =<br />

Hintergrundfarbe, kleinste Schriftgröße). Ein Kommentar wird auf Ihrer Webseite nicht angezeigt,<br />

jedoch von den Suchmaschinen ausgewertet. Stellen Sie an den Anfang der Seite einige Zeilen<br />

Kommentar mit Ihren Schlüsselwörtern.<br />

Die meisten Suchmaschinen erkennen spamdexing und so werden z. B. Seiten mit auffallender<br />

Wiederholung von Schlüsselwörtern ans Ende des Suchergebnisses gesetzt. Generell gibt es aber wohl<br />

immer Möglichkeiten, bei den Suchmaschinen zu mogeln. Dies lohnt sich aber immer weniger, weil<br />

der Aufwand immer höher wird.<br />

Weitere Informationen finden Sie im Skript Suchen im Internet.<br />

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt<br />

Optimieren Ihrer Seite 152


Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

Letzte Aktualisierung: 02. Jun 2012<br />

<strong>Webdesign</strong><br />

<strong>Webdesign</strong><br />

von Prof. Jürgen Plate<br />

Spamindexing 153


Skript-Sprachen<br />

Über Bilder, Animationen, VRML hinaus kann in Webseiten auch Programmcode für Interaktionen<br />

mit Formularen oder zur direkten Ausführung durch den Benutzer eingefügt werden. Typische<br />

Vertreter sind Programmiersprachen wie Java, JavaScript oder ActiveX. Neuestes Lieblingskind der<br />

"Zappel-Fraktion" ist FLASH, denn hier wird Interaktion und Animation vereint.<br />

Java<br />

In Java wurden zum zum einen erfolgreiche Konzepte aus bereits bestehenden Sprachen (z.B. C, C++,<br />

Smalltalk, Eiffel, Ada, Objectiv-C) übernommen, zum anderen neue Konzepte verwirklicht.<br />

Java ist eine junge Interpretersprache, die viele mächtige Konzepte in sinnvoller Weise integriert. Sie<br />

völlig objekt-orientiert, interpretiert, einfach, architekturneutral, portabel und sicher. Eine gute<br />

Performance kann durch Multithreading und optionalen Nativecode erreicht werden. Ausgiebige<br />

Compilierzeitüberprüfungen und strikte Laufzeitckecks garantieren ein robustes und sicheres<br />

Verhalten der Applikationen. Sie kann somit neben der Möglichkeit des schnellen Prototyping als eine<br />

stabile Basis für verteilte und erweiterbare Systeme dienen.<br />

Die wesentlichen Gesichtspunkte sind:<br />

• Objektorientiert<br />

• Eigenschaften<br />

• Architekturunabhängig und portabel<br />

• Robustheit<br />

• Multithreading<br />

• Garbage Collection<br />

• Sicherheit<br />

Java ist objektorientiert<br />

Java ist vollkommen object-orientiert. Jede objekt-orientierte Sprache sollte Minimum der folgenden<br />

Charakteristiken in sich haben:<br />

• Encapsulation: Informationen (oder genauer Attribute und Methoden) werden gekapselt, d.h.<br />

konkrete Implementierung und Strukturen sind f&uumr den Anwender nicht sichtbar.<br />

Lediglich Funktionalit&t und Interface eines Objektes werden bekanntgegeben.<br />

• Inheritance: Subklassen "erben" Inhalte von Klassen<br />

• Dynamic binding: ermöglich ein Maximum an Flexibilität zur Laufzeit<br />

All diese Anforderungen werden von Java in hohem Maße erfüllt. Es werden sogar zusätzlich weitere<br />

runtime-features geboten, die die Software-Entwicklung einfacher machen können.<br />

Wichtige Begriffe in diesem Zusammenhang die auch in Java vorkommen sind:<br />

Klassen: Definiert Attribute und Methoden<br />

Object : instanzierte Klasse<br />

Message: Aufruf einer Methode eines anderen Objektes<br />

Constructor:<br />

Methode, die die Initialisierung eines einer Klasse instanzierten Objektes<br />

vornimmt<br />

Destructor: Gegenstück zum constructor.<br />

Skript-Sprachen 154


Access Control:<br />

Abstract<br />

Methods:<br />

Bei der Deklarierung einer Klasse können Attribute und Methoden mit<br />

verschiedenen Zugriffsleveln (public, protected, private, friendly) versehen<br />

werden.<br />

Methoden, die in einer Klasse deklariert werden, deren Implementierung aber erst<br />

in einer Subklasse erfolgt.<br />

Packages: Java-konstrukt, das eine Sammlung von zusammengehörenden Klassen bildet.<br />

Wichtige Eigenschaften von Java<br />

• Objektorientierung<br />

• Multithreading<br />

• Robustheit<br />

• Sicherheit<br />

• Erweiterbarkeit<br />

• Plattformunabhängigkeit<br />

Was Java hat<br />

• import: vergleichbar dem IMPORT von Modula-2.<br />

• interface: ein geschickter Ersatz für die Mehrfachvererbung.<br />

• Garbage Collection<br />

• Verbesserte Ausnahmebehandlung<br />

• Wohldefinierte Klassenhierarchie<br />

Eigenschaften, die nicht von C oder C++ übernommen wurden:<br />

• In Java gibt es keine Präprozessor-direktiven (wie z.B. #define) mehr.<br />

• Es gibt keine Headerfiles, dafür aber interfaces, die die Definition anderer Klassen und deren<br />

Methoden beinhalten.<br />

• Multiple Inheritance wurde durch Interfaces ersetzt, die Methodendefinitionen von Klassen<br />

gleichgesetzt werden können.<br />

• Kein "goto"-statement (definiert, aber nicht implementiert).<br />

• Kein Operator-overloading.<br />

• Keine Pointer.<br />

• Keine Typdefinitionen.<br />

• Keine Variante Records (union).<br />

• Keine generische Typen (templates).<br />

• Keine Mehrfachvererbung.<br />

• Keine vorzeichenlose Zahlentypen.<br />

• Keinen direkten Hardwarezugriff.<br />

Java ist architekturunabhängig und portabel<br />

Durch die Verwendung von byte-code im Gegensatz zum Binärcode ist Java völlig architekturneutral.<br />

Java-Programme lassen sich auf allen Plattformen ausführen, auf welche die Virtual Machine portiert<br />

wurde. Portierungen werden durch die strikte Sprachspezifikation unterstützt.<br />

Java ist robust<br />

<strong>Webdesign</strong><br />

Java ist eine Sprache, die gedacht ist für robuste, zuverlässige und sichere Applikationen. Um dies zu<br />

erreichen wird ein striktes compile-time checking durchgeführt, das es ermöglicht Syntaxfehler früh<br />

zu entdecken. Java ist eine sehr typorientierte Sprache. Viele C-Freiheiten, wie etwa implizite<br />

Java ist objektorientiert 155


Deklaration von Funktionen sind nicht erlaubt. Besondere Stützen der Robustheit sind die<br />

Abschaffung von Pointern, die Verwendung von echten Arrays, ein Speichermodell, das die<br />

unerlaubte Überschreibung von Speicherbereichen verhindert und strengere Casting-Regeln.<br />

Java ist multithreaded<br />

'Multithreaded programming' ist in den meisten bisherigen Programmiersprachen sehr oft ein<br />

schwieriges (oft sogar unmögliches) Unterfangen. Java stellt zur Programmierung und Verwaltung<br />

von threads eine eigene Klasse zur Verfügung. Von dieser können threads als ein neues Objekt<br />

instanziert werden. In ihr werden Methoden zum Starten, Stoppen und Abfragen des Statuses des<br />

threads bereitgestellt.<br />

Die größten Probleme tauchten bisher bei der Synchronisation der threads und bei der Vermeidung<br />

von deadlocks auf. Java stellt eine Menge von synchronization primitives zur Verfügung, die im<br />

Wesentlichen auf das von C.A.R. Hoare eingeführte monitor and condition variable-Paradigma<br />

basieren.<br />

Java stellt eine auf Sprachebene integrierte Multithreadingunterstützung bereit. Damit können<br />

Methoden auf einfache Weise synchronisiert und das Problem der concurrency gelöst werden.<br />

Methoden laufen dann unter Aufsicht eines 'Monitors', der sicherstellt, daß Variablen in einem<br />

konsistenten Zustand bleiben.<br />

Java hat einen Garbage Collector<br />

Java hat einen integrierten Garbage Collector, der als ein Hintergrundthread mit niederer Priorität<br />

implementiert ist. Der GC dealloziert Objekte, die nicht mehr referenziert werden. Bei der<br />

Programmierung äussert sich dies darin, dass Objekte nicht explizit dealloziert werden müssen (z. B.<br />

im Destructor). Letzteres ist zwar möglich, aber es entscheidet der GC.<br />

Java ist sicher<br />

<strong>Webdesign</strong><br />

Bereits bei der Konzeption von Java wurden grundlegende Überlegungen bezüglich der Sicherheit<br />

angestellt. Der Java-Compiler und das Laufzeitsystem integrieren mehere Abwehrschichten gegen<br />

potentiell gefährlichen Code. Am wichtigsten ist sicherlich das Speicherallozierungs- und<br />

-referenzierungsmodell. Entscheidungen über die Speicherbelegung werden nicht vom Compiler (wie<br />

in C oder C++), sondern erst zur Laufzeit vorgenommen. Intern verwendet Java sogenannte 'handles'<br />

die zur Laufzeit in physikalische Addressen aufgelöst werden. Dies geschieht sehr spät und z. T. auch<br />

abhängig von der Architektur, jedoch völlig transparent für den Programmierer.<br />

Was passiert, wenn gefährlicher Code auf einen Server generiert und zur Laufzeit auf dem client<br />

ausgeführt wird? Obwohl der Java-Compiler beim übersetzen das Einhalten von bestimmten<br />

Sicherheitsregeln garantiert, bleibt er natürlich machtlos, wenn Code-Fragmente zur Laufzeit<br />

on-the-fly gelinkt werden. Wie kann also das Laufzeitsystem dem hereinkommenden byte-code stream<br />

vertrauen, der vielleicht von einem nicht vertrauenswürdigen Compiler erzeugt wurde? Die Antwort<br />

ist einfach: Java traut dem Code nicht und unterwirft ihn deshalb dem<br />

byte-code-Verifizierungsprozeß. Dieser beinhaltet eine Reihe von sinnvollen, restriktiven<br />

Maßnahmen. Darunter sind einfache Typüberprüfungen, Ausklammerung von Pointern, Ausschluß<br />

von Stack-Über- und -Unterläfen, strikte Parameterüberprüfung, strikte Typkonvertierungen,<br />

Überprüfung der Speicherzugriffsrestriktionen. Weiter wird getestet, daß Objekte wirklich nur als<br />

solche verwendet werden.<br />

Java ist robust 156


Daten- und Kontrollfluß vom Java-Quellcode bis zur Ausführung.<br />

Trotz der ausgedehnten Verifizierungsprozeß bleibt Java (laut Sun) immer noch schnell genug, da der<br />

Java-Interpreter von jeder weiterer Überprüfung hinsichtlich der Sicherheit befreit ist und damit mit<br />

vollen Geschwindigkeit arbeiten kann.<br />

Weitere Sicherheitsaspekte sind im Java Networking Package implementiert, welches es erlaubt<br />

verschiedene Sicherheitsebenen zu konfigurieren. Diese sind:<br />

• alle Netzwerkzugriffe sind verboten<br />

• Alle Netzwerkzugriffe sind erlaubt<br />

• Netzwerkzugriffe sind nur jenen hosts erlaubt, von denen der Code importiert wurde<br />

• Netzwerkzugriffe sind auf Zugriffe außerhalb des Firewalls beschränkt, wenn der Code von<br />

dort kommt.<br />

Zum Weiterlesen über Java ein Vortragsmanuskript von Antje König.<br />

Wer sich für Java interessiert, findet Java-Seiten mit vielen Demos, den HotJava-Browser (für SUNs)<br />

und Java-Entwicklersoftware auf dem Server von SUN Microsystems unter http://java.sun.com.<br />

Active-X<br />

Microsoft will mit eigener Internet-Technologie Standards setzen und hat, gewissermaßen als<br />

Konkurrent zu Java, seine Active-X-Technik entwickelt. Active-X ist eine Microsoft-Technik zur<br />

Erzeugung interaktiver Web-Seiten mithilfe von Controls, Skripts und Softwarepaketen, wie zum<br />

Beispiel Textverarbeitungen und Tabellenkalkulationen.<br />

Was ist Active-X?<br />

<strong>Webdesign</strong><br />

Ein Active-X-Control ist ein kleines Windows-Programm, das sich nur mit Hilfe eines Web-Browsers<br />

ausführen läßt. Wenn Sie im Internet auf eine mit einem Active-X-Control ausgestattete Seite<br />

kommen, werden nicht nur Text und bunte Bilder angezeigt, sondern auch ein Programm auf Ihren<br />

Rechner geladen und ausgeführt. Im ungünstigsten Fall merken Sie gar nicht, daß ein<br />

Java ist sicher 157


Active-X-Control in eine Web-Seite eingebunden ist und automatisch ausgeführt wird, während Sie<br />

die Seite anschauen und sich in trügerischer Sicherheit wähnen.<br />

Der Sinn von Active-X ist aus Sicht von Microsoft:<br />

• Applikationen in Web-Browser einzubinden<br />

• Den Web-Browser zur Schaltzentrale für Internet und Intranet zu machen<br />

Die Active-X-Technologie besteht aus folgenden Komponenten:<br />

• Active-X-Controls<br />

• Active-X-Scripting<br />

• Active-X-Dokumente<br />

• Active-X-Conferencing<br />

• ActiveMovie<br />

Active-X-Controls<br />

sind Elemente wie Schaltflächen, Listboxen, Bildlaufleisten usw., die auf Web-Seiten plaziert und dort<br />

benutzt werden können. Dadurch wird ein hoher Grad an Interaktion mit dem Anwender erreicht.<br />

Active-X-Scripting<br />

Active-X-Controls werden mit sogenannten Skripts gesteuert. Skripts sind Programme, die in<br />

HTML-Seiten eingebaut und somit für jedermann lesbar sind. Skriptsprachen sindVisual-Basic-Script<br />

(VB-Script) und Java-Script.<br />

Active-X-Dokumente<br />

Sie funktionieren wie OLE-Verbunddokumente. Ein Browser (Container) kann zum Beispiel ein<br />

Excel-Sheet anzeigen (Excel ist dann der Server), ohne das man den Browser verlassen muß - sofern<br />

man Excel hat. Man kann so Dokumente ganz verschiedener Formate in das Netz posten und jeder,<br />

der auch den entsprechenden Server hat, kann sie betrachten. Damit wird aber der Nutzerkreis aber auf<br />

die Anwender von Microsoft-Produkten eingeschränkt und die gemeinsame Sprache des WWW,<br />

HTML, ausgegrenzt.<br />

Active-X-Conferencing<br />

Eine Kommunikations-Technik, die noch in der Entwicklung ist. Active-X-Conferencing erlaubt die<br />

Anwendung einer Software, die auf einem einzigen Rechner läuft, durch mehrere Personen<br />

gleichzeitig, die über ein Netzwerk verbunden sind. Dieses Netzwerk kann das Internet aber auch das<br />

Intranet sein. Damit sich die teilnehmenden Personen auch von "Mensch zu Mensch" unterhalten<br />

können, während sie gemeinsam eine Software steuern, gibt es eine Voice-Verbindung. Diese<br />

Voice-Verbindung funktioniert bisher aber nur zwischen zwei Teilnehmern. Für die Zukunft ist auch<br />

eine Video-Verbindung geplant.<br />

ActiveMovie<br />

<strong>Webdesign</strong><br />

Zur Übertragung von Audio und Video-Daten über Netze gibt ist ActiveMovie. ActiveMovie soll<br />

ermöglichen, daß die Audio- und Video-Daten nicht erst komplett auf den eigenen Rechner geladen<br />

werden müssen bevor man sie abspielen kann (was unter Umständen ziemlich lange dauern kann),<br />

sondern die Übertragung erfolgt in Echtzeit. Voraussetzung ist natürlich, daß die Verbindung schnell<br />

genug ist.<br />

Was ist Active-X? 158


Gefahren von Active-X<br />

Im Gegensatz zu Java lauern hier Gefahren für den Computer des Websurfers. Hinter einem<br />

Active-X-Control verbirgt sich ja nichts anderes als ein normales Windows-Programm. Es kann also<br />

alles tun, was auch jedes andere Windows-Programm tun kann: Daten von Ihrer Festplatte übers Netz<br />

versenden, Viren installieren - oder einfach nur die Festplatte formatieren. Active-X-Programme sind<br />

also ein Risikofaktor und sollten nur unter bestimmten Voraussetzungen eingesetzt werden.<br />

Der Chaos Computer Club demonstrierte der Öffentlichkeit die Risiken von Active X: Die Hacker<br />

programmierten ein Active-X-Control, das der Finanz-Software Quicken einen Überweisungsauftrag<br />

unterjubelte. Der Auftrag wurde so gespeichert, daß er beim nächsten T-Online-Connect automatisch<br />

ausgeführt würde.<br />

Active-X-Programme laufen derzeit nur mit dem Microsoft Internet-Explorer ab Version 3. Damit<br />

Active-X-Controls mit einem Netscape-Browser funktionieren, muß man ein spezielles<br />

Active-X-Plug-in installieren.<br />

Beim Installieren von Active-X-Komponenten wird manchmal ein 'Zertifikat' angezeigt. Wer<br />

Active-X-Programme schreibt, kann sich ein solches 'Zertifikat' besorgen, das nach dem Laden der<br />

Webseite angezeigt wird. Dieses Zertifikat soll garantieren, daß das Active-X-Control wirklich im<br />

Originalzustand vorliegt. Gewährleistet wird das durch eine verschlüsselte Quersumme, die beim<br />

Herausgeber des Zertifikats hinterlegt ist und die mit der des Programms verglichen wird. Ein gültiges<br />

Zertifikat heißt jedoch keinesfalls, daß Sie einem Active-X-Control blind vertrauen können. Der<br />

bisher einzige Zertifizierer, Verisign Commercial Software Publishers CA, prüft nicht, was ein<br />

Active-X-Control auf einem Rechner anstellt, sondern nur, ob das Programm nach der Zertifizierung<br />

verändert wurde. Nachdem jeder sein Active-X-Control zertifizieren lassen kann, besteht auch die<br />

Möglichkeit, daß gefährliche oder schädliche Active-X-Controls ein Zertifikat bekommen. Dabei muß<br />

nicht einmal böse Absicht des Programmierers im Spiel sein, denn "Man soll nie Absicht vermuten,<br />

wo Dummheit als Begründung ausreicht." Insofern hat das Zertifikat höchst zweifelhaften Wert.<br />

Wird auf einer Webseite ein Zertifikat angezeigt, hängt es davon ab, wo Sie sich befinden: Handelt es<br />

sich um eine renommierten Firma, können Sie ein zertifiziertes Active-X-Control ohne großes Risiko<br />

installieren. Befinden Sie sich dagegen auf einer privaten oder halbprivaten Seite, sollten Sie auch mit<br />

zertifizierten Komponenten sehr vorsichtig sein. Programmierfehler können sich natürlich auch in<br />

Controls großer Unternehmen befinden.<br />

Wie erfahre ich, welche Active-X-Controls schon auf meinem PC sind?<br />

Wenn Sie schon massenhaft Active-X-Controls auf Ihrer Platte haben, hilft die Freeware<br />

'Active-XCavator'. Sie listet alle installierten Controls einschließlich diverser Dateiinformationen<br />

(Verzeichnis, Größe) auf und kann auch einzelne Controls löschen. Das Programm gibt es unter<br />

http://www.winmag.com/software/xcavate.htm.<br />

JavaScript<br />

Zu dieser Sprache gibt es ein eigenes Skript: Clientseitige Interaktion: JavaScript.<br />

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

<strong>Webdesign</strong><br />

Gefahren von Active-X 159


<strong>Webdesign</strong><br />

<strong>Webdesign</strong><br />

von Prof. Jürgen Plate<br />

<strong>Webdesign</strong> 160


Literatur zur Grafik<br />

Anhang<br />

J. O. Murray, W. van Ryper: G. Born:<br />

'Encyclopedia of Graphics 'Referenzhandbuch Dateiformate'<br />

File Formats' Addison-Wesley<br />

O'Reilly<br />

Thomas W. Lipp: L. Maffei/A. Florentini:<br />

'Die große Welt der 'Das Bild im Kopf'<br />

Grafikformate' Birkhäuser Verlag<br />

Synergy-Verlag<br />

Peter Kentie:<br />

'Web Graphics'<br />

Addison-Wesley<br />

Literatur zu HTML<br />

Mary E. S. Morris: Larry Aronson:<br />

'HTML - WWW effektiv nutzen' 'HTML Manual of Style'<br />

Heise-Verlag Ziff Davis<br />

Laura Lemay: Frederik Ramm:<br />

'Teach Yourself Web Publishing 'Recherchieren und Publizieren<br />

with HTML in a Week' im World Wide Web'<br />

Sams Publishing Vieweg-Verlag<br />

David Siegel: Simone Demmel:<br />

'Web Site Design' 'Web-Design: HTML-Seiten durchdacht gestalten'<br />

Verlag Markt & Technik Pflaum-Verlag<br />

Middleton/Deng/Kemp: Andreas Niessner:<br />

'Web-Programmierung mit Perl' 'VRML-Praxis'<br />

Verlag Markt & Technik Pflaum-Verlag<br />

Weinmann/Weinmann: David Siegel:<br />

'creative html design.2' 'Web Site Design'<br />

Markt & Technik Markt & Technik<br />

Jakob Nielsen: Jeffrey Veen:<br />

'Designing Web Usability' 'Web Design - Konzept, Gestalt, Vision'<br />

Markt & Technik Markt & Technik<br />

Stephan Lamprecht: E. Heindl/K. Maier:<br />

'WebDesign-Handbuch' 'Der Webmaster'<br />

Hanser-Verlag Addison-Wesley<br />

Michael Baumgardt:<br />

'Web Design kreativ!'<br />

Springer Verlag<br />

Deutschsprachige HTML-Beschreibungen im Netz<br />

• HTML-Dateien selbst erstellen, von Stefan Muenz (Compuserve)<br />

(http://www.teamone.de/selfhtml/)<br />

• HTML-Einführung, von Hubert Partl (BOKU Wien)<br />

(http://www.boku.ac.at/htmleinf/)<br />

Download-Version<br />

Anhang 161


(ftp://mail.boku.ac.at/www/hein.tar.gz)<br />

PostScript-Version<br />

(ftp://mail.boku.ac.at/www/htmleinf.ps.gz)<br />

• HTML-Kurzbeschreibung, von Hubert Partl (BOKU Wien)<br />

(http://www.boku.ac.at/htmleinf/hkurz.html)<br />

Download-Version<br />

(ftp://mail.boku.ac.at/www/hein.tar.gz)<br />

PostScript-Version<br />

(ftp://mail.boku.ac.at/www/hkurz.ps.gz)<br />

• HTML-Einführung von Dierk Lucyga (Uni Konstanz)<br />

(http://www.uni-konstanz.de/org/provider/html.html)<br />

• Deutsche Version des Bare Bones Guide von Kevin Werbach (USA)<br />

(http://werbach.com/barebones/gerippe-eingang.html)<br />

Zum Inhaltsverzeichnis<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

<strong>Webdesign</strong><br />

"Multimedia im Internet<br />

von Prof. Jürgen Plate<br />

Deutschsprachige HTML-Beschreibungen im Netz 162


Verzeichnisse<br />

Links für Webmaster<br />

Alles gratis http://www.heise.de/ct/99/04/112/bookmarx.htm Linkliste zum Artikel in c't<br />

4/99, S. 112<br />

Tipps und Tricks http://www.heise.de/ct/tipsundtricks/cttt4.shtml#4_2 c't-Tipps-und-Tricks-Sammlung<br />

kresch.com http://www.kresch.com/ The informed Netizens s<br />

Choice<br />

Dr. Web http://www.ideenreich.com/drweb.shtml Webmaster-Portal,<br />

Freeware-Ressourcen<br />

internet.com http://www.internet.com/ Ein ganzes Netz von Sites zum<br />

Thema Internet-Entwicklung<br />

DevSearch http://www.devsearch.com/ Suchmaschine für<br />

WWW-Entwickler<br />

kostenlos.de http://www.kostenlos.de/internet/ Verzeichnis kostenloser Dienste<br />

und Freeware<br />

kosten.de http://www.kosten.de Metaverzeichnis kostenloser<br />

Dienste und Freeware<br />

Freeware Wizard http://www.freewarewizard.de/ Gut sortiertes<br />

Freeware-Verzeichnis<br />

Webmaster<br />

Ressources<br />

http://www.webmaster-resources.com/resources/ Verzeichnis von kostenlosen<br />

Webmaster-Ressourcen<br />

No Nags http://www.nonags.com Gut sortiertes<br />

Freeware-Verzeichnis<br />

HTML-Editoren- und Tools<br />

BBEdit Light http://www.barebones.com/free/free.html HTML-Editor für MacOS<br />

Arachnophilia http://www.arachnoid.com/arachnophilia/ Leistungsfähiger Code-basierter<br />

HTML-Editor<br />

Phase 5 http://www.meybohm.de/ Vielseitiger Code-basierter<br />

HTML-Editor<br />

Colormat http://www.yaromat.com/colormat/main.htm# Werkzeug zur Farbauswahl für<br />

die Homepage<br />

CSE HTML<br />

Validator<br />

http://www.htmlvalidator.com/lite/ Light-Version des<br />

HTML-Checkers<br />

SelfHTML http://www.teamone.de/selfhtml/ Ausführliche HTML-Referenz,<br />

auch zum Download<br />

Banner, Grafiken, Layout<br />

Clipart.com http://www.clipart.com/ Verzeichnis von Clipart-Sites<br />

freegraphics.com http://www.freegraphics.com/ Verzeichnis von Clipart-Sites<br />

Cooltext http://www.cooltext.com/ Bannergenerator, Buttons und<br />

Bulletts<br />

GIFWorks http://www.gifworks.com/ Eine ganze Reihe von<br />

Online-Tools<br />

Links für Webmaster 163


Coder.com http://coder.com/creations/banner/banner-form.pl.cgi Vielseitiger Banner-Generator<br />

1&1<br />

Banner-Generator<br />

http://www.banner.de/ Komfortabler Banner-Generator<br />

Gif Optimierer http://webszene.com/freeware/download/gifopt.zip Speckt GIFs für s Web ab<br />

JPEGCruncher http://www.jpegcruncher.com/ Speckt JPEGs für s Web ab<br />

WebUtilities http://www.webutilities.com/stuff.htm Diverse Freeware-Programme<br />

und Online-Tools von Ulead<br />

GIMP http://www.gimp.org Leistungsfähiges<br />

Bildbearbeitungsprogramm<br />

CGI, Javascripts, Chats, Foren, Inhalte, etc.<br />

cgi-ressources.com http://www.cgi-resources.com/ Über 2000 Programme und<br />

Skripte<br />

cgi-service.de http://www.cgi-service.de/ Hosten eigener CGI-Skripte<br />

ScriptSearch http://www.scriptsearch.com/ Perl, JavaScript, C++ etc.<br />

javascript world http://www.jsworld.com/ Scripts, Tipps, Tutorials<br />

Delphi Forums http://www.delphi.com/ Forum zum Einbau in<br />

Homepage<br />

Beseen.com http://www.beseen.com Chat-Raum, Forum<br />

chatset.web.de http://chatset.web.de IRC-Chat für die Homepage<br />

Expediamaps http://www.expediamaps.com/maps-on-your-site.asp Karten zum Einbinden in die<br />

Homepage<br />

Web Site Search<br />

Tools<br />

http://www.searchtools.com/searchtools.html Suchmaschinen für alle Zwecke<br />

Freefind.com http://www.freefind.com/ Suchmaschine für die<br />

Homepage<br />

Site-Management<br />

SiteOwner http://www.siteowner.com/ Online-Dienst für die<br />

Homepage-Wartung<br />

NetMechanic http://www.netmechanic.com/ Power Tools for your Web<br />

Site<br />

Fritz-Servive http://www.fritz-service.com/de/ Ladezeit-, Link-, HTML-Check,<br />

Suchmaschineneintragung<br />

Xenu s Link<br />

Sleuth<br />

<strong>Webdesign</strong><br />

http://www.snafu.de/~tilman/xenulink.html Zuverlässiger Link-Checker<br />

Astra Site Manager http://www.merc-int.com Grafischer Link-Checker<br />

NetWhistle http://netwhistle.com/ Läuft der Server noch?<br />

Uptime http://uptime.arsdigita.com/uptime/about.tcl Server-Monitor<br />

WS FTP LE 4.6 http://www.tucows.de/ftp95.html ftp-Client für Windows 9x<br />

Netclone http://www.progmatics.com.au/netclone/ ftp-Client für MacOS<br />

Banner, Grafiken, Layout 164


E-Mail-Adressen<br />

Free Email<br />

Address Directory<br />

http://www.emailaddresses.com/ Verzeichnis kostenloser<br />

E-Mail-Dienste<br />

HotMail http://www.hotmail.com Freemail mit Integration in<br />

Outlook Express<br />

GMX http://www.gmx.net Freemail mit POP-Zugang<br />

Freemail.web.de http://freemail.web.de/ verschlüsselte Freemail<br />

Copyright © FH München, FB 04, Prof. Jürgen Plate<br />

<strong>Webdesign</strong><br />

E-Mail-Adressen 165


Standard-216-Farben-Tabelle<br />

Hinweis: Der Browser muß Tabellen mit Hintergrundfarben unterstützen, damit man die<br />

Farben auch sieht!<br />

Jede dieser Farben wird vom Netscape Navigator oder vom MS-Internet-Explorer problemlos<br />

dargestellt.<br />

Farben des Standard-6X6-Farbkubus<br />

RGB Farbwerte<br />

3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966<br />

Standard-216-Farben-Tabelle 166

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!