Close

Odpověď na: TFT displej a definování barev

Úvodní stránka Fórum Hardware Displeje TFT displej a definování barev Odpověď na: TFT displej a definování barev

#6959
Zbyšek Voda
Správce

Dobrý den, TFT displeje často používají 16-bit barevný režim.
Podívejte se sem – http://www.willamette.edu/~gorr/classes/GeneralGraphics/imageFormats/. Pod „16 bit color“ je tam tento režim popsaný.

Zkráceně: Jak to funguje?
Na popis barvy máte celkem 16 bitů. 5 na červenou, 6 na zelenou, 5 na modrou (lidské oko je na zelenou citlivější, proto má o jeden bit více). Bity jsou uspořádány takto:

|r|r|r|r|r|g|g|g|g|g|g|b|b|b|b|b|

Jak dosáhnout barev?
Na červenou a modrou máte 5 bitů – tedy hodnoty 0 – 31
Na zelenou 6 bitů – 0 – 63

Kod:

uint16_t barva(int r, int g, int b){
    r = r % 32;
    g = g % 64;
    b = b % 32;    
    
    r = r << 11;
    g = g << 5;
    
    return r | g | b;
}

Tedy uint16_t(0,0,0) vrátí hodnotu černé.