Webdesign - Netzmafia
Webdesign - Netzmafia
Webdesign - Netzmafia
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: &='&', "='"', <=''.<br />
Das deutsche "ä" wird beispielsweise durch ä repräsentiert, ein "Ä" wäre Ä, ein<br />
"ß" wäre ß.<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 ( ) 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 />
___ <br />
Modem<br />
_____ <br />
Öffentliches Telefonnetz<br />
_____ <br />
Modem<br />
___ <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 />
.... >><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 />
<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 />
♦ < für das Kleiner-Zeichen <<br />
♦ > für das Größer-Zeichen ><br />
♦ & 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önnen ... nun ... auswä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