Zum Hauptinhalt springen
Version: 24o

2. Farbdarstellung

Farbkanäle 1

Für die digitale Verarbeitung müssen Farben in Zahlen umgewandelt werden. Das geschieht, indem die Farben in verschiedene Komponenten, sogenannte Farbkanäle aufgeteilt werden. Pro Pixel kann so die Intensität je Farbkanal als Zahl bestimmt werden.

Die zwei wichtigsten Ansätze, wie diese Aufteilung in verschiedene Kanäle erfolgt, werden im folgenden vorgestellt.

RGB-Farbmodell

Das RGB-Farbmodell basiert auf der Funktionsweise des menschlichen Auges. Dieses nimmt Farben mit Hilfe von drei Arten von sogenannten Zäpfchen wahr, die für Licht unterschiedlicher Wellenlängen empfindlich sind. So werden vom Menschen die Grundfarben Rot, Grün und Blau wahrgenommen.

Farbwahrnehmung des menschlichen Auges
Farbwahrnehmung des menschlichen Auges@

Diese Eigenschaft des Auges wird bei der additiven Farbdarstellung ausgenutzt, indem sich überlagernde Lichtquellen in den drei Grundfarben Rot, Grün und Blau verwendet werden. Durch die Regulierung der Helligkeit der einzelnen Lichtquellen können sämtliche Farben erzeugt werden.

Dieses Farbmodell kommt überall dort zum Einsatz, wo Licht verwendet wird, um ein Bild zu erzeugen, insbesondere bei Bildschirmen und Videoprojektoren («Beamer»). Die Farben auf einem Bildschirm werden erzeugt, indem drei nahe beieinanderliegende Leuchtdioden in den Farben Rot, Grün und Blau in unterschiedlicher Helligkeit leuchten. Ein solches Trio von Leuchtdioden wird Pixel genannt.

Additives Farbmodell --width=100%
Additives Farbmodell@
Pixel auf einem Bildschirm --width=100%
Pixel auf einem Bildschirm@

Umgekehrt kann man bei einem Bild die Rot-, Grün- und Blauanteile jedes Bildpunkts bestimmen. Man sagt, dass man das Bild in Rot-, Grün- und Blaukanal aufteilt:

Aufteilung in Rot-, Grün- und Blaukanal
Aufteilung in Rot-, Grün- und Blaukanal@

Im entsprechenden RGB-Farbsystem wird eine Farbe definiert, indem die Helligkeit der Rot-, Grün- und Blauanteils durch eine Zahl zwischen 0 und 255 ausgedrückt wird.

Um eine Farbe binär darzustellen, werden die binären Darstellungen der Zahlen für Rot, Grün und Blau nacheinander aufgeschrieben. So hat beispielsweise die Farbe mit den RGB-Werten 255, 220, 150 die binäre Darstellung 11111111 11011100 10010110.

RGB

Rot
255
Grün
217
Blau
0
Binär00000000
CSS-Farbergb(255, 217, 0)

RGBA-Farbmodell

Für das RGBA-Farbmodell wird das RBG-Farbmodell um einen Kanal erweitert. Dieser heisst Alphakanal und drückt aus, wie stark die Deckkraft der Farbe ist. Ein Wert von 0 bedeutet gar keine Deckkraft und somit volle Transparenz. Ein maximaler Wert bedeutet maximale Deckkraft und somit keine Transparenz.

RGBA

Rot
255
Grün
217
Blau
0
Alpha
0.86
Binär00000000
CSS-Farbergba(255, 217, 0, 0.86)

CMYK-Farbmodell

Das CMYK-Farbmodell basiert auf der Weise, wie Gegenstände farbig erscheinen. Ein Gegenstand wird üblicherweise mit weissem Licht, also Licht verschiedener Wellenlängen (Rot, Grün und Blau) angestrahlt. Beispielsweise erscheint ein gelber Gegenstand deshalb in dieser Farbe, weil er blaues Licht absorbiert und rotes und grünes Licht reflektiert.

subtraktives Farbmodell
subtraktives Farbmodell@

Bei der subtraktiven Farbdarstellung werden auf weissem Material die drei Grundfarben Cyan, Magenta (Fuchsia) und Yellow (Gelb) verwendet, welche rotes, grünes bzw. blaues Licht absorbieren. Zusätzlich wird schwarze Farbe (Key-Kanal) verwendet, welche alles Licht absorbiert.

Aufteilung in Cyan-, Magenta-, Yellow- und Key-Kanal
Aufteilung in Cyan-, Magenta-, Yellow- und Key-Kanal@

Dieses Farbmodell kommt beim Drucken zum Einsatz.

CMYK

Cyan
90 %
Magenta
70 %
Yellow
50 %
Key
30 %
CSS-Farbergb(0, 0, 0)
⭐️ Umrechnung CMYK – RGB

Für die Umrechnung einer CMYK-Farbangabe nach RGB wird folgender Formelsatz verwendet:

r=(1c)(1k)g=(1m)(1k)b=(1y)(1k)\begin{aligned} r &= (1 - c) \cdot (1 - k) \\ g &= (1 - m) \cdot (1 - k) \\ b &= (1 - y) \cdot (1 - k) \\ \end{aligned}

Dabei wird vorausgesetzt, dass sämtliche Werte im Bereich 0 bis 1 liegen. Wenn beispielsweise die CMYK-Werte in Prozent angegeben werden und die RGB-Werte mit einem Byte codiert werden, ergeben sich folgende Formeln:

r=255(1c0.01)(1k0.01)g=255(1m0.01)(1k0.01)b=255(1y0.01)(1k0.01)\begin{aligned} r &= 255 \cdot (1 - c \cdot 0.01) \cdot (1 - k \cdot 0.01) \\ g &= 255 \cdot (1 - m \cdot 0.01) \cdot (1 - k \cdot 0.01) \\ b &= 255 \cdot (1 - y \cdot 0.01) \cdot (1 - k \cdot 0.01) \\ \end{aligned}

def sanitize(wert):
# Wandelt Prozent-Werte zu Zahlen zwischen 0 und 1 um
if wert > 1:
return wert / 100
return wert

def cmyk2rgb(c, m, y, k):
faktor = 1 - sanitize(k)
r = (1 - sanitize(c)) * faktor
g = (1 - sanitize(m)) * faktor
b = (1 - sanitize(y)) * faktor
return [r, g, b]

print('rgb: ', cmyk2rgb(80, 60, 40, 20))

Farbtiefe

Die Farbtiefe gibt an, in wie vielen Abstufungen jeder Farbkanal vorliegt. Im interaktiven Tool lässt sich die Farbtiefe untersuchen. Dabei werden alle Farbabstufungen der drei Farbkanäle Grün, Rot und Blau wie folgt kombiniert.

--width=100%

Farbtiefen

Farbabstufungen
2
Mögliche Farben8
Benötigte Bits pro Farbkanal1
Farbtiefe pro Farbkanal1 bit
Farbtiefe3 bits
1. Aufgabe: Farbtiefe

Erkennen Sie das System, wie die Farbtiefe mit der Anzahl möglicher Farben zusammenhängt?

  • Wie viele Farben sind bei einer Farbabstufung von 4, 8, 16, 128 oder 256 Stufen möglich?
  • Wie viel bits sind für die Darstellung eines Farbkanals bei 4, 8, 16, 128 oder 256 Abstufungen nötig?
SSR
SSR

Die Anzahl Bits oder Bytes, welche insgesamt für die Speicherung einer Farbe verwendet werden, wird Farbtiefe genannt. Damit wird festgelegt, wie viele unterschiedliche Abstufungen pro Farbkanal dargestellt werden können. Beim RGB-Farbmodell wird üblicherweise eine Farbtiefe von 3 Byte (entspricht 24 Bit) verwendet. Dies ergibt pro Farbkanal acht Bit, womit 256 Farbabstufungen beschrieben werden können. Somit können 256×256×256 = 16.7 Millionen unterschiedliche Farben dargestellt werden.

FarbmodellFarbtiefePlatzbedarf in Byte
Farbe3 Bytebh3b \cdot h \cdot 3
Farbe mit Transparenz4 Bytebh4b \cdot h \cdot 4
Graustufen1 Bytebhb \cdot h
Schwarzweiss1 Bitbh18b \cdot h \cdot \frac{1}{8}