Site Perso de

Thomas JANNAUD

Des actualités personnelles sous un style impersonnel, et inversement.



Couleurs
Fonctionnement des couleurs sur un ordinateur, et transformation HLS<->RGB 13 Janvier 2009

Il y a essentiellement 2 manières de coder les couleurs : en RGB (red, green, blue) et en TLS (teinte, luminosité, saturation). La transparence est traitée plus loin.

RGB

En RGB, une couleur est codée sur 3 octets. Un nombre entre 0 et 255 pour le rouge, un autre pour le vert, un autre pour le bleu. 0 correspond à rien sur la couleur, et 255 au maximum. Ainsi (0, 0, 0) est le noir, (255, 255, 255) est le blanc, (255, 0, 0) le rouge, ??? le rose, ...

Ce format est le plus simple, il correspond à un mélange très intuitif de lumières : si l'on a un spot rouge, un spot vert et un spot bleu, en réglant les différentes intensités/puissances de ces spots on peut faire toutes les couleurs possible. 0 correspond à éteindre le spot.

Pour créer un dégradé entre une couleur et une autre, rien de plus simple. Si l'on a deux points (R1, G1, B1) et (R2, G2, B2) alors on trace la ligne qui aura pour couleurs successives ((1 - t) R1 + t R2, (1 - t) G1 + t G2, (1 - t) B1 + t B2) et on a un joli dégradé (t de 0 à 1).
En effet, cette "formule" permet de faire varier les niveaux de R, G et B de manière continue.

TLS

D' autres manières de coder les couleurs peuvent être d'exprimer R, G et B mais dans une autre "base". Ainsi CMV (cyan, magenta, violet) revient à prendre un autre choix de vecteurs de base pour l'espace tridimensionnel des couleurs (où rouge = (1, 0, 0), ...).

TLS est un peu différent : au lieu de traiter l'espace des couleurs de manière cartésienne (la plus "intuitive", avec 3 vecteurs de base orthogonaux, un peu comme on peut le faire avec le pouce, l'index et le majeur), il le traite avec des coordonnées sphériques. La sphère unité représente des couleurs avec une luminosité constante, mais où la teinte et la saturation varient. La distance à l'origine dans cet espace fait varier la luminosité. En gros, on trace une droite partant de 0. Sur cette droite on aura toujours la même couleur, allant par exemple du noir, au rouge foncé, ..., rouge clair, ... puis le blanc. Algorithme de transformation

À lire aussi :
Laissez un commentaire !

Pas besoin de vous connecter, commencez à taper votre nom et une case "invité" apparaîtra.