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
2 semaines en Toscane, que bella !
Ti amo Italia y pasta y mozzarella
Partir à l'aventure
Partir un jour… pour toujours… ♫
L'aventure en chiffres
32 jours, 3 pays. Et les autres chiffres.
Configurer ses sauvegardes
Du bon usage de DropBox, disques durs externes, des gestionnaires...
Le nouveau permis de conduire
Bonne ou mauvaise réforme ?
Programmation
Tutoriels et conseils pour bien démarrer, outils à utiliser
iPhone 6 moins
Précommandez le vite !!
Barjavel
Et ses romans enchanteurs
Sierra Nevada
road trip encore plus à l'américaine que d'habitude
Mes iPhone App
JapanEasy, Wormwar et tout ce qu'il y a à savoir sur les apps
Soirée au café-théâtre
Le Matana (Paris 5ème), un café à découvrir ?
San Francisco
balade en vélo
Manifs
honteux. Comme d'habitude
Tokyo is magic
Une soirée pas comme les autres
Hawaï
Une perle verte sur l'océan
Wikileaks
Le site de la honte