La manipulation des couleurs est un peu une bizarrerie dans la programmation informatique, car pratiquement tous les langages/systèmes traitent les couleurs à peu près de la même manière. Et le feront probablement toujours de cette façon, car elle est liée à la façon dont la vue humaine fonctionne (et cela ne va pas changer).
Vos yeux ne peuvent vraiment voir que 3 couleurs, le rouge, le vert et le bleu. Toutes les autres couleurs sont des mélanges. Les moniteurs ont donc des pixels rouges, verts et bleus indépendants.
C'est un tout petit peu exagéré, mais si nous autorisons 8 bits (256 valeurs possibles) pour chacune des couleurs rouge, verte et bleue, nous pouvons générer toutes les couleurs que nous pouvons percevoir. Ajoutez 8 bits supplémentaires pour la transparence, et vous obtenez 32 bits - 8 bits pour le rouge, le vert, le bleu et la transparence. Ce qui fait 8 x 4 = 32 bits d'information par pixel, qui se trouve être la longueur d'un entier dans la plupart des langages.
Donc les ordinateurs génèrent un entier de 32 bits pour chaque pixel de l'écran. Le matériel du moniteur sépare cette information en rouge, vert, bleu et transparence et l'utilise pour déterminer la luminosité relative des pixels rouges, verts et bleus et donc la couleur finale.
De nombreux langages (Java, C#) n'ont même pas de classes concrètes pour la couleur, ils utilisent simplement des ints. Les systèmes d'exploitation Apple ont bien des classes de couleur concrètes, mais elles sont facilement traduites de et vers RGB et ne sont pas vraiment si différentes sous le capot.