Du bist nicht angemeldet.

Werbeanzeige

1

15.10.2003, 19:35

Farbwerte zurückgeben

Hallo ich habe eine Funktion aus dem Buch benutzt um die einzelnen Farbwerte zurückzugeben(16Bit).

Quellcode

1
2
3
            int rw=((hmap[0][3] >> 11) & 0x0000001F) << 3;
            int gw=((hmap[0][3] >> 5) & 0x0000003F)  << 2;;
            int bw=( hmap[0][3] & 0x0000001F) << 3;


Ich erhalte immer falsche Werte. Z.B statt 0,64,128 erhalte ich 0,60,120 woran kann das liegen. Ist die Funktion falsch?

2

22.10.2003, 17:26

:huhu:

David Scherfgen

Administrator

Beiträge: 10 320

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

22.10.2003, 22:28

Nein, das ist schon richtig so: bei 16 Bits ist die Genauigkeit nicht so groß wie bei 32 Bits, von daher passt das schon. Bei 32 Bits gibt es für jeden Farbkanal 2^8 = 256 verschiedene Werte. Bei 16 Bits (R5G5B5) gibt es aber für jeden Farbkanal nur 2^5 = 32 verschiedene Werte.

Werbeanzeige