Codage des couleurs et des octets
Codage des couleurs et des octets
Objectifs cantonaux : O2.2, O2.4.
Cours complet sur la plateforme Runestone de Cédric Donner : Représentation des couleurs.
Après les nombres et le texte, voyons comment un ordinateur représente une couleur sous forme numérique — une notion utile pour comprendre plus tard la représentation des images.
Synthèse additive des couleurs
▷ Définition — Synthèse additive RGB
Un écran produit n’importe quelle couleur en mélangeant trois couleurs fondamentales : rouge, vert et bleu (RGB, Red Green Blue). Plus on ajoute de lumière colorée, plus on se rapproche du blanc — contrairement à la peinture (synthèse soustractive), où mélanger des couleurs assombrit le résultat.
Un octet par composante
▷ Rappel — Octet
Un octet est un paquet de 8 bits. Il permet de coder \(2^8 = 256\) valeurs différentes, de 0 à 255.
Chaque composante (rouge, vert, bleu) d’un pixel est codée sur 1 octet, donc avec une valeur entre 0 et 255. Il faut donc 3 octets = 24 bits pour coder la couleur complète d’un pixel.
Comme chaque composante varie de 0 à 255 indépendamment des deux autres, le nombre total de couleurs représentables est :
\[256^3 = 2^{24} = 16\,777\,216 \text{ couleurs}\]
Notation hexadécimale des couleurs
Comme chaque composante tient exactement sur 2 chiffres hexadécimaux (un octet = 2 chiffres hex), on note très souvent une couleur par ses trois composantes en hexadécimal, collées : #RRGGBB.
La couleur fb34cd se décompose en trois octets :
Rouge : fb_16 = 15*16 + 11 = 251
Vert : 34_16 = 3*16 + 4 = 52
Bleu : cd_16 = 12*16 + 13 = 205
Beaucoup de rouge, beaucoup de bleu, peu de vert : cette couleur est un magenta qui tire vers le rouge.
◈ Syntaxe — Couleur en Python
def rgb_to_hex(red, green, blue):
return hex(red * 256 ** 2 + green * 256 + blue)
print(rgb_to_hex(255, 0, 255)) # 0xff00ff (magenta)Exercice 1 — nombre de couleurs sur N bits
Combien de couleurs (ou nuances de gris) différentes peut-on représenter sur 4 bits ? Sur 6 bits ? Combien de bits faut-il au minimum pour représenter 40 nuances de gris différentes ?
Exercice 2 — décoder une couleur binaire
Estimez la couleur représentée par les 3 octets suivants (indice : passez par l’hexadécimal, c’est plus rapide) :
11011011 11101100 00011001
Exercice 3 — encoder une couleur
Représentez sous forme hexadécimale la couleur (128, 192, 230) et estimez grossièrement de quelle couleur il s’agit.
Devoir donné par Cédric
Terminer les exercices de codage des couleurs (nombre de couleurs sur N bits, conversions décimal/binaire/hexadécimal d’une couleur).