Représentation des couleurs#
La synthèse additive et les pixels#
Sur un écran d'ordinateur, chaque pixel est composé de trois sous-pixels qui émettent respectivement de la lumière rouge (R pour Red), verte (G pour Green), et bleue (B pour Blue). En modulant l'intensité de chacun de ces trois sous-pixels, on peut créer une grande variété de couleurs grâce au principe de synthèse additive : lorsque plusieurs lumières colorées se superposent, leurs couleurs s'additionnent.
Par exemple :
Rouge + Vert = Jaune
Rouge + Bleu = Magenta
Vert + Bleu = Cyan
Rouge + Vert + Bleu = Blanc
Lorsque tous les sous-pixels sont éteints, le pixel apparaît noir. Lorsque tous les sous-pixels sont allumés à intensité maximale, le pixel apparaît blanc.
Représentation numérique d'une couleur#
En informatique, l'intensité de chaque sous-pixel (rouge, vert, et bleu) est représentée par un octet, c'est-à-dire une séquence de 8 bits. Un octet peut prendre \(2^8 = 256\) valeurs différentes, allant de \(0_{10}\) à \(255_{10}\) en notation décimale, ou de \(00000000_2\) à \(11111111_2\) en notation binaire, ou encore de \(00_{16}\) à \(FF_{16}\) en notation hexadécimale.
Une couleur complète est donc représentée par 3 octets (24 bits au total) : un octet pour le rouge, un pour le vert, et un pour le bleu. On colle ces trois octets les uns après les autres dans l'ordre RGB.
Exemple 1 : Le rouge pur#
Pour obtenir du rouge pur, on met l'intensité du rouge au maximum et les deux autres à zéro :
Rouge = 255, Vert = 0, Bleu = 0
En binaire :
11111111 00000000 00000000En hexadécimal :
FF0000
Exemple 2 : Le jaune#
Le jaune s'obtient en combinant le rouge et le vert au maximum :
Rouge = 255, Vert = 255, Bleu = 0
En binaire :
11111111 11111111 00000000En hexadécimal :
FFFF00
Exemple 3 : Un gris moyen#
Les niveaux de gris s'obtiennent lorsque les trois composantes ont la même valeur :
Rouge = 128, Vert = 128, Bleu = 128
En binaire :
10000000 10000000 10000000En hexadécimal :
808080
Couleurs usuelles#
Voici quelques couleurs de base avec leurs représentations :
Couleur |
Rouge (R) |
Vert (G) |
Bleu (B) |
Hexadécimal |
Binaire |
|---|---|---|---|---|---|
Noir |
0 |
0 |
0 |
|
|
Rouge |
255 |
0 |
0 |
|
|
Vert |
0 |
255 |
0 |
|
|
Bleu |
0 |
0 |
255 |
|
|
Jaune |
255 |
255 |
0 |
|
|
Magenta |
255 |
0 |
255 |
|
|
Cyan |
0 |
255 |
255 |
|
|
Blanc |
255 |
255 |
255 |
|
|
Gris foncé |
64 |
64 |
64 |
|
|
Gris clair |
192 |
192 |
192 |
|
|
Nombre de couleurs représentables#
Avec 3 octets (24 bits), on peut représenter :
C'est plus de 16 millions de couleurs ! Ce nombre est largement suffisant pour que l'œil humain perçoive des images avec des transitions de couleurs très douces et naturelles.
Exercices#
Exercice 1#
De quelle couleur s'agit-il ?
FF000000FF000000FFFFFF00FF00FF00FFFFFFFFFF000000404040C0C0C011111111 00000000 0000000000000000 11111111 0000000000000000 00000000 1111111111111111 11111111 1111111100000000 00000000 00000000R=255, V=255, B=0R=255, V=0, B=255R=0, V=255, B=255R=192, V=192, B=192
Exercice 2#
Donnez la représentation hexadécimale ou décimale de chaque couleur affichée.
a) → Hexadécimal : ___________
b) → Hexadécimal : ___________
c) → Hexadécimal : ___________
d) → Décimal : R=, V=, B=___
e) → Décimal : R=, V=, B=___
f) → Hexadécimal : ___________
Solution
a) FF0000 b) 00FF00 c) 0000FF d) R=255, V=255, B=0 e) R=192, V=192, B=192 f) FFFFFF
Exercice 3#
Identifiez la couleur correspondant au code hexadécimal donné. Répétez l'exercice plusieurs fois pour vous familiariser avec les variations de couleurs.
Code hexadécimal |
Couleur |
|---|---|
Exercice 4#
a) Quelle est la représentation hexadécimale de la couleur orange, sachant que celle-ci s'obtient avec un rouge à intensité maximale, un vert à intensité moyenne (128), et un bleu éteint ?
Solution
Orange : R=255, V=128, B=0
En hexadécimal :
Rouge = 255 = FF
Vert = 128 = 80
Bleu = 0 = 00
Donc orange = FF8000
b) Combien d'octets faut-il pour représenter une image de 1920 × 1080 pixels en couleur ?
Solution
Chaque pixel nécessite 3 octets (un pour R, un pour G, un pour B).
Nombre de pixels = 1920 × 1080 = 2'073'600 pixels
Nombre d'octets = 2'073'600 × 3 = 6'220'800 octets
Cela correspond à environ 6,2 Mo (mégaoctets).
Exercice 5#
En vous aidant de la table ASCII et de vos connaissances sur la représentation des couleurs, expliquez pourquoi il est pratique d'utiliser la notation hexadécimale pour représenter les couleurs en informatique.
Solution
La notation hexadécimale est pratique car :
Un octet (8 bits) peut être représenté exactement par 2 chiffres hexadécimaux (de 00 à FF)
C'est beaucoup plus compact que la notation binaire (6 caractères au lieu de 24)
C'est plus lisible que la notation décimale (on voit clairement la séparation entre les 3 composantes)
C'est facile à taper avec un clavier standard (uniquement des chiffres et des lettres A-F)
Par exemple, pour la couleur cyan :
Hexadécimal :
00FFFF(6 caractères)Binaire :
00000000 11111111 11111111(24 caractères + espaces)Décimal : R=0, V=255, B=255 (plus verbeux)