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

Laissez un commentaire !

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

Fichiers Wav
Format, spécifications et code source C++ générant un .wav
Comment jouer un son en javascript / How to play a sound with javascript
In French and English
Editeur hexadécimal
Comment s'en servir + exemple avec images Bitmap
Snippets utiles pour iOS Cocoa - Useful Cocoa snippets
Courts et efficaces / Short and simple. In French and English
Tutoriel Cocoa / Objective-C
Bases pour créer une appli en Cocoa/Obj-C avec interface + astuces et code sources
Mes codes open source
Des dizaines de sources et snippets, pour apprendre ou se perfectionner
La petite maison dans la prairie
3 jours à la ferme
Tutoriel CamL
Bases, astuces et codes sources pour se familiariser avec ce language
Configurer ses sauvegardes
Du bon usage de DropBox, disques durs externes, des gestionnaires...
Soirée au café-théâtre
Le Matana (Paris 5ème), un café à découvrir ?
Kyoto - Photos
Premières photos
Emulateurs de jeux Nintendo 64 et de vieux jeux Mac
Retour en enfance
Kyoto premières journées
découverte des alentours de la maison à Kyoto
AppEngine : analyse et conseils techniques
AppEngine, l'outil de la décennie !
Automator et Applescript
Impimer plusieurs liens URL / pages internet en PDF
Print many URL / webpages in PDF
Voyage en Islande
Sur les traces des vikings
Salon de l'auto
Une petite virée au salon de l'Auto 2008
L'énergie est notre avenir
Et l'avenir est notre énergie
11 heures d'avion
Il peut s'en passer des choses en 11 heures...
Loi El Khomri - Pourquoi tant de haine ?
On se bat pour des khomri
Repas au quotidien
S'alimenter autrement
La maison des tartes
Une de mes petites adresses, rue mouffetard