Marcel Carlé

Softwareentwickler

Technisch

Ein Bitmap Bild ist pro Pixel in drei Farben aufgeteilt: Rot, Grün und Blau - kurz RGB. Jede Farbe kann einen Wert zwischen 0 und 255 annehmen, also 2^8 = 256 verschiedene Werte.
Kombiniert man diese 3 Farbwerte, so erhält man die Farbe des Pixels. Es gibt also insgesamt 2^8 * 2^8 * 2^8 = 2^24 = 16777216 verschiedene Farben die in einem Pixel dargestellt werden können.

Verändert man das letzte Bit einer Farbe, das so genannte least signifikant bit (LSB), so verändert sich die Farbe für das menschliche Auge in einem so geringem Maß, dass kaum ein Unterschied fest zu stellen ist.
Nehmen wir als Beispiel die Farbe (R: 123, G: 231, B: 42): 
Nun ändern wir die Farbe minimal (R: 122, G: 230, B: 43):

Das Auge wird zwischen diesen beiden Farben keinen oder kaum einen Unterschied erkennen. Berücksichtigt man nun, dass die Farbe normalerweise nur auf einem Pixel in einem Bild ist, sieht das Auge keinerlei Unterschied mehr.

Ein Buchstabe wird (je nach gewähltem Encoding) mit einem Byte dargestellt. Möchte man nun einen Byte in ein Bild speichern, benötigt man also 3 Pixel, da man bei jedem Pixel das LSB jedes Farbwerts nutzt. Somit stehen einem 9 bit zur Verfügung. Hier mal ein Beispiel:

Hat man die folgenden drei Pixel

  R
GB
Pixel 1 00110100 10000101 01110110
Pixel 2 01111101 10000001 00100001
Pixel 3 10011100 00001110 00000011


und möchte den Buchstaben 'E', also den Binärcode 01000101, speichern, so erhält man nun die neuen drei Pixel:

  R
GB
Pixel 1 00110100 10000101 01110110
Pixel 2 01111100 10000000 00100001
Pixel 3 10011100 00001111 00000011


Wie man sieht, verändern sich die Pixel nur minimal, der erste verändert sich sogar garnicht. Dies kann man nun auf das gesamte Bild anwenden und kann somit dann einige Informationen in einem Bild speichern.