Codage 8 bits couleurs

Bonjour,
J'utilise un écran TFT qui fonctionne avec un affichage couleurs sur 8 bits.
Mais je n'arrive pas à trouver de site qui montre le codage couleurs sur 8 bits.
Pourriez vous m'aider, je cherche à faire du orange :slight_smile: , un vert et rouge pas trop clair
Mon matériel :

  • ESP32
  • écran tft 3.2 pouces adafruit featherthing.

vous remerciant

Salut

:warning: lisez les recommandations listées dans "Les bonnes pratiques du Forum Francophone”

quel écran TFT, quel arduino, quel montage, quel code, ...

il manque pas mal d'infos..

Salut.
COULEURS
Les salutations

C'est le codage 24 bits ton lien donc n'affiche pas les bonnes couleurs, il me faut le codage 8 bits

Par 8 bits je comprends
R 8 bits
G 8 bits
B 8 bits

Soit 24 bits au total.

Donc par conséquent le lien de @gonpezzi est parfait.
Dans le cas échéant nous donner un lien vers l'afficheur pour qu'on puisse répondre plus précisément.
D'où la remarque de @J-M-L ...

il nous faut les infos demandées... pour savoir comment sont répartis les bits entre R G et B si c'est vraiment un afficheur 8 bits.
ça pourrait être par exemple 3 bits pour rouge et bleu et 2 bits pour vert
ça pourrait être une table d'indirection vers une page de 256 couleurs à définir en 24 bits
...

écran tft 3.2 pouces adafruit featherthing

ça n'existe pas. Donnez nous un lien clickable...

désolé j'aurais du regardé avant, j'ai dit n'import quoi , c'est 3.5 pouces featherwing :sweat_smile:
Adafruit TFT FeatherWing - 3.5 480x320 Touchscreen for Feathers : ID 3651 : $39.95 : Adafruit Industries, Unique & fun DIY electronics and kits

la doc dit

Two libraries need to be downloaded and installed: first is the Adafruit HX8357 library (this contains the low-level code specific to this device), and second is the Adafruit GFX Library (which handles graphics operations common to many displays we carry).

vous les avez chargées ?

Oui, mon problème c'est que j'ai des couleurs qui s'affiche mais pas les bonnes,

la bibliothèque gère les couleurs sur 16 bits

lcds___displays_colorpack

vous avez les couleur suivantes que vous pouvez mettre dans votre code

// Color definitions
#define BLACK    0x0000
#define BLUE     0x001F
#define RED      0xF800
#define GREEN    0x07E0
#define CYAN     0x07FF
#define MAGENTA  0xF81F
#define YELLOW   0xFFE0 
#define WHITE    0xFFFF

oui mais je trouve que les couleurs sont trop clair et il n'y a pas le orange

orange en RGB c'est 100% du rouge + 57% de vert + 0% de bleu

..R.. ...G.. ..B..
11111 100100 00000

essayez: #define ORANGE 0xFC80 ou #define ORANGE 0b1111110010000000

(affinez les bits du vert si le orange n'est pas vraiment orange)

1 Like

@oasixm recherche le codage 256 couleurs qui utilise le format GIF 256 couleurs, les 3 premiers bits correspondent au rouge, les 3 suivants au vert et les deux derniers au bleu, (2 bits car l'œil humain est moins sensible au bleu ). Je trouve des convertisseurs de fichiers en ligne mais pas un tableau ou une formule pour le calculer à partir d'un RGB normal.

AJOUTÉE
J'ai trouvé la formule connaissant les valeurs RGB, ce petit programme la calcule :

byte R, G, B, C8;
void setup() {}
void loop() {
R = map(R,0,255,0,7)*32;
G = map(G,0,255,0,7)*4;
B = map(B,0,255,0,3);
C8 = R + G + B;
}

Salutations

1 Like

Il y a une macro pour ça c'est un peu plus rapide il n'y a que des décalages et des opérations logiques.

#ifndef RGB
#define RGB(r,g,b) (((r&0xF8)<<8)|((g&0xFC)<<3)|((b&0xF8)>>3)) //RGB565: 5 red | 6 green | 5 blue
#endif

@gonpezzi

cette formule c'est pour un RGB sur un seul octet. Comme dit plus haut la bibliothèque utilise 16 bits (RGB565)
➜ la macro de @fdufnews fonctionne en perdant les bits de poids faibles de chaque couleur prise indépendamment.

Il me semble donc que c'est ce que @oasixm recherchait. COULEURS