Christian Renner (ch12r)

Farbtreue im Netz, oder: Wenn die Farben fremdgehen

RGB-Farbraum

RGB-Farbraum


Und da war es mal wieder, das leidige Thema: Farbwahl im Webdesign. Und wie war das nochmal? Kann man nun heutzutage jeglichen Farbton, der sich im 256er-RGB-Farbraum befindet und somit auch als Hexcode darstellen lässt, verwenden? Die einfache und klare Antwort lautet: Ja!

Websichere Farben

Früher war alles besser? Mitnichten. Zum Beispiel gab es bis vor circa 10 Jahren noch das Problem, dass die Clients mit denen man früher ins Internet gegangen ist, unzureichende Hardwarevoraussetzungen (8bit-Farbtiefe) hatten, dass von den vielen, für den Menschen wahrnehmbaren Farben, gerade mal 256 (!) darstellbar waren. Da davon wiederum einige durch die unterschiedlichen Betriebssysteme reserviert waren, hat sich damals dann die Verwendung von 216 sogenannten “websicheren Farben” als Standard herauskristallisiert.
Da heutzutage selbst die meisten Mobiltelefone und PDAs mit 16bit-Farbtiefe (65.536 Farben) ausgestattet sind, hat sich die Reduzierung der Farbauswahl auf die websicheren Farben de facto erledigt. Ausnahme ist natürlich eine Spezialisierung auf Dienste, die von einer Vielzahl von Clients mit 8bit-Farbtiefe nutzbar sein sollen.

Heißt das jetzt, dass alle Farben “sicher” sind?


Natürlich nicht. Abhängig von der Art des Monitors oder Beamers kann sich ein und derselbe Farbwert zum Teil erheblich unterscheiden. Ein Orange wird plötzlich zu einem Rot oder gar zu einem ****-braun. Gerade bei Präsentationen ist es daher durchaus ratsam, wenn die Möglichkeit besteht, das jeweilige Ausgabemedium vorab zu Testen und eventuelle Peinlichkeiten abzuwenden.
Aber nicht nur die Hardware ist für potentiellen Ärger verantwortlich. Auch Software kann sich, zum Beispiel beim sogenannten Dithering, theoretisch sehr unterschiedlich auf die Darstellung auswirken. Selbst wer auf Nummer sicher gehen will und Grafiken einsetzt, kann sein blaues Wunder erleben. Denn auch bei Grafiken kann sich bei verschiedenen Browsertypen die Darstellung unterscheiden, was dieser Foreneintrag sehr schön beweist.

Wo liegt die natürliche Grenze?

Der RGB-Farbraum resultiert aus einer additiven Farbmischung der drei Grundfarbtöne rot (R), grün (G) und blau (B). Die Spezifikation des W3Cs bezüglich der Verwendung von Farben in CSS-Stylesheets sieht vor, dass den drei Farbkanälen jeweils ein Wertebereich zwischen 0 und 255 zur Verfügung steht. Dies entspricht jeweils 8bit pro Farbkanal, also 24bit (Truecolor) insgesamt. Farben in Stylesheets werden immer als sechsstelliger Hexcode angegeben, welcher den 24bit-RGB-Farbraum 1:1 abdeckt:

#FF0000 /* Red */

In der Darstellung als Hexcode liegt auch die natürliche Grenze der Verwendung von Farben im Web. Mehr als diese rund 16,8 Millionen Farben sind durch den Hexcode nicht kodierbar und dementsprechend auch nicht zu nutzen.
Anders sieht es bei der Darstellung als RGB-Tupel aus, zum Beispiel:

rgb(255,0,0) /* Red */

Hier wäre es denkbar, für entsprechende Endgeräte den Wertebereich für jeden Farbkanal zu verdoppeln, also auf Werte zwischen 0 und 511, was einer Farbtiefe von 16bit pro Farbkanal entspräche. Die oben verlinkte Spezifikation des CSS2-Standards macht hier dem Entwickler jedoch einen Strich durch die Rechnung, da sie festlegt, dass Werte außerhalb des Wertebereichs abgeschnitten werden.

Und was kommt danach?

Seit geraumer Zeit entwickelt das W3C den neuen Standard CSS3. Die Spezifikation des neuen Farbmoduls sieht vor den RGB-Farbraum um den sogenannten Alpha-Kanal zu erweitern. Dies erhöht zwar nicht die Anzahl der zur Verfügung stehenden Farbtöne. Es wird jedoch die Möglichkeit geboten durch Regulieren der Deckkraft und Variation der Hintergrundfarbe neue Farbtöne zu mischen. Definiert wird die Deckkraft entweder durch die Eigenschaft opacity in Kombination mit dem Farbwert in RGB-Darstellung oder mittels eines Tupels aus dem RGBa-Farbwertes:

rgba(255,0,0,1) /* Red with full opacity */

Letzten Endes verhilft diese Technik jedoch so lange nicht zu einem Fortschritt, wie entsprechende Endgeräte diese Farbdarstellung nicht beherrschen. Da der CSS-Standard jedoch nicht nur für das Web und daher den Monitor als Ausgabemedium vorsieht, sondern insbesondere auch Drucker, kann die eine oder andere Optimierung tatsächlich vorgenommen werden.
Des Weiteren sieht der Standard in seiner momentanen Version vom Juli 2008 vor, dass Werte die außerhalb des Wertebereichs der 8bit pro Farbkanal liegen, nicht einfach nur abgeschnitten, sondern auf einen sinnvollen Wert – abhängig vom jeweiligen Gamut des Ausgabemediums – gemappt werden sollen. Dementsprechend kann eine Angabe, wie

rgba(300,0,0)

eine je Ausgabemedium spezifische Darstellung erzeugen.

Der neue Standard erweitert die Farbpracht des WWW jedoch nicht nur um den Alpha-Kanal, sondern auch um einige festgelegten Bezeichnungen für Farbtöne, welche die Gesamtzahl definierter Farbnamen von 16 auf 140 erhöht. Eine Übersicht findet sich hier.

This entry was posted in Development and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared.

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">