Home » Tutorials » Grafik und Spiele » Bitmaps

Bitmaps

Weitere Algorithmen

Helligkeit

Um die Helligkeit eines Bitmaps zu verändern, müssen die drei Farbwerte um den gleichen Wert erhöht bzw. Erniedrigt werden.
Beispielsweise

for i:=1 to 3 do inc(p^[i],50);

würde den Helligkeitswert um 50 Byte erhöhen, jedoch ist hier noch nicht die Grenzwertkontrolle implementiert.

Kontrast

Die Formel zur Kontrastveränderung lautet:

Rotwert = Rotwert + x *(Rotwert-127)
Grünwert = Grünwert + x *(Grünwert -127)
Blauwert = Blauwert + x *(Blauwert-127)

wobei x sich zwischen -255 und 255 bewegt.
Wieder muss vor der Berechnung geprüft werden, ob der jeweilige Farbwert nicht seine Grenzwerte überschreiten würde, und andernfalls den jeweiligen Grenzwert zugewiesen bekommen (wie bei der IF-Abfrage der Farbton-Procedure).

Sättigung

value = (rot + grün + blau) / 3

rot = rot + x * (rot – value)
grün = grün + x * (grün – value)
blau = blau + x * (blau -value)

Wieder ist x ein Wert zwischen -255 und 255, ebenfalls muss wieder auf die Grenzwerte geprüft werden.

HLS/HBS

Es gibt ferner die Methode, Fabwerte in HLS- bzw. HBS-Werte zu konvertieren. Man erhält somit drei Werte, die für Helligkeit, Sättigung, Licht, Kontrast und Farbton stehen. Die Funktion dazu ist etwas umfangreicher, deshalb verweise ich hier auf die Windows-SDK unter dem Thema ‚Converting Colors Between RGB and HLS (HBS)‘.