Profondeur de couleur

Une image en noir et blanc necessite seulement 1 bit par pixel, mais une photo couleur en necessite 24 ! Pourquoi cette difference et qu'est-ce que ca change ?

Difficulte:
20 min
+25 XP

Formules cles

Nombre de couleurs = 2n (n = bits par pixel)
Taille (octets) = L x H x (bits / 8)

Objectifs du cours

  • Comprendre le lien entre bits et nombre de couleurs
  • Maitriser les calculs de 2^n pour les couleurs
  • Connaitre les standards : 1, 8, 16, 24 et 32 bits
  • Calculer la taille d'une image selon sa profondeur

Erreurs courantes a eviter

  • Confondre 8 bits par couleur et 8 bits au total (tres different !)
  • Oublier que 24 bits = 8 bits x 3 canaux (R, G, B)
  • Ne pas comprendre que plus de bits = fichier plus lourd
  • Confondre profondeur de couleur et resolution de l'image

**Le bit : unite de base**

Un **bit** est la plus petite unite d'information : - Il ne peut avoir que **2 valeurs** : 0 ou 1 - C'est comme un interrupteur : eteint ou allume

**La formule magique**

**Nombre de couleurs = 2^n** (2 puissance n)

Ou **n** est le nombre de bits par pixel.

**Exemples de calcul** :

| Bits | Calcul | Couleurs | |------|--------|----------| | 1 bit | 2^1 | 2 couleurs (noir/blanc) | | 2 bits | 2^2 | 4 couleurs | | 4 bits | 2^4 | 16 couleurs | | 8 bits | 2^8 | 256 couleurs | | 16 bits | 2^16 | 65 536 couleurs | | 24 bits | 2^24 | 16 777 216 couleurs |

**Pourquoi des puissances de 2 ?**

L'ordinateur fonctionne en **binaire** : - 1 bit = 2 possibilites (0, 1) - 2 bits = 4 possibilites (00, 01, 10, 11) - 3 bits = 8 possibilites (000, 001, 010, 011, 100, 101, 110, 111) - Et ainsi de suite...

**Visualisation**

**1 bit** : Noir OU Blanc **2 bits** : Noir, Gris fonce, Gris clair, Blanc **8 bits** : 256 nuances de gris **24 bits** : 16.7 millions de couleurs (True Color)

Python - Calculs de profondeur
# Calcul du nombre de couleurs selon les bits

def couleurs_par_bits(bits):
    """Calcule le nombre de couleurs pour n bits."""
    return 2 ** bits

print("=== NOMBRE DE COULEURS SELON LES BITS ===\n")

bits_list = [1, 2, 4, 8, 12, 16, 24, 32, 48]

print(f"{'Bits':>6} | {'Calcul':>12} | {'Couleurs':>20}")
print("-" * 45)

for bits in bits_list:
    couleurs = couleurs_par_bits(bits)
    if couleurs >= 1_000_000:
        couleurs_str = f"{couleurs / 1_000_000:.1f} millions"
    elif couleurs >= 1_000:
        couleurs_str = f"{couleurs:,}"
    else:
        couleurs_str = str(couleurs)
    print(f"{bits:>6} | 2^{bits:>3}{' ':>6} | {couleurs_str:>20}")

print("\n=== REPRESENTATION BINAIRE ===\n")

def binaire_couleurs(bits):
    """Montre toutes les combinaisons pour n bits."""
    couleurs = 2 ** bits
    print(f"Avec {bits} bits, on peut representer {couleurs} valeurs :")
    for i in range(min(couleurs, 8)):  # Limiter l'affichage
        binaire = format(i, f'0{bits}b')
        print(f"  {binaire} = {i}")
    if couleurs > 8:
        print(f"  ... jusqu'a {format(couleurs-1, f'0{bits}b')} = {couleurs-1}")
    print()

binaire_couleurs(1)
binaire_couleurs(2)
binaire_couleurs(3)

print("=== ANALOGIE VISUELLE ===\n")
print("1 bit  : [ ██ |    ]  -> 2 cases = 2 couleurs")
print("2 bits : [ ██ | █▓ | ▓░ |    ]  -> 4 cases = 4 couleurs")
print("8 bits : [ ██ | █▓ | ... | ░░ |    ]  -> 256 cases = 256 nuances")

Quiz de validation

1. Combien de couleurs peut-on representer avec 8 bits ?

2. Que signifie 'True Color' en termes de profondeur ?

3. A quoi sert le canal Alpha en 32 bits ?

4. Quelle est la taille brute d'une image 1920x1080 en 24 bits ?

5. Pourquoi utilise-t-on parfois 48 bits en photographie professionnelle ?

Pixel