Hier geht es um
Steganografie, also dem verborgenen Speichern von Daten in Bildern.
Die Pixeltiefe ist von 1 bis 7 Bit einstellbar.
Je höher die Bittiefe, umso mehr Daten können in einem Bild versteckt werden.
Bis zu eine Bittiefe von 4 sind die Veränderungen am Bild für das menschliche Auge unsichtbar.
Jedes Pixel besteht aus 3 Farben mit jeweils 8 Bit.
Um ein Nutzbit in einem Pixel zu verstecken, werden das niederwertige Bit der drei Farben verändert. (r7, g7, b7)
Wenn die Summe von r7 + g7 + b7 zwischen 2 und 3 liegt, wird das Nutzbit als True betrachtet;
ist die Summe zwischen 0 und 1 wird das Nutzbis als False betrachtet.
Es genügen also 2 Farbbits, um die Information zu speichern.
Deshalb werden diese beiden Farbbits beim Schreiben der Daten zufällig ausgewählt. (Also Rot/Blau, Rot/Grün oder Blau/Grün).
Im Ergebnis ein ganz feines Bild-Rauschen, dass man mit dem blosen Auge nicht sieht.
Bisher kann man die Bilder nur als 24 Bit BMP Dateien speichern.
Man sollte nur komprimierte Archivformate (ZIP, RAR, 7z,...) in Bildern speichern,
da die einen schützenden Kontainer für die eigentlichen Dateien darstellen.
Ausserdem haben komprimierte Dateien eine quasi zufällige Bitverteilung, was im Bild wie Rauschen aussieht und nicht auffällt.
Natürlich ist der Sourcecode nicht direkt im Anhang; das wäre ja zu einfach.

Man muss schon das beiliegende Beispielbild nehmen und den Inhalt in eine ZIP-Datei speichern (Picture->File).
Version 1.0 (2008-05-30): erstes Release
Version 1.1 (2008-05-30): Stegano source code in eigene
Unit, neue Klasse TBitString
Todo:
* Prüfsumme zum Entdecken von Fehlern
* Programmicon (wer hat ein Passendes ?)
* mehr Robustness gegenüber Bildfehlern