Couleurs en physique et en informatique


La donnée de la longueur d'onde d'une lumière n'est pas suffisante pour préciser la couleur perçue par un observateur mais l’expérience montre que, dans un système de référence bien défini on peut déterminer une couleur quelconque par un ensemble de trois données numériques ; Parmi les hypothèses proposées pour expliquer que la perception colorée ne dépend que de trois variables , celle qui paraît la plus acceptable suppose dans le système visuel l’intervention de trois types de récepteurs inégalement sensibles aux radiations monochromatiques, et intégrant leurs effets (Young 1801).

L’expérience montre qu’une même sensation de couleur peut être due à des lumières de compositions spectrales très diverses. Ainsi, des sensations de couleur jaune voisines peuvent être produites soit par une lumière monochromatique de longueur d’onde voisine de 580 nm, soit par une lumière blanche privée partiellement de ses composantes bleues, soit par un mélange de lumières rouges et vertes dans lequel le jaune est absent. Il est en effet possible d'obtenir des couleurs nouvelles par addition de lumières différentes (synthèse additive) ou par absorption de couleurs (synthèse soustractive).

Le système le mieux adapté à la perception humaine des couleurs est le système TSL (HSB en anglais) : Teinte, Saturation, Luminosité. La teinte correspond au nom de la couleur, la saturation à son intensité ou profondeur et la luminosité au pourcentage de blanc ajouté à la couleur.
En général, la teinte varie entre 0 et 360. La saturation et la luminosité s'expriment alors en pourcentages.
Quand on exprime la teinte entre 0 et 360, on parle de cercle des couleurs. Dans ce cercle le rouge correspond à 0° ou 360°, le jaune à 60°, le vert à 120°, le cyan à 180°, le bleu à 240° et le magenta à 300°. Dans cette représentation, des couleurs complémentaires sont séparées par 180°.

La couleur en informatique.
Moniteurs :
Chaque pixel d'un moniteur couleur est constitué de trois phosphores : rouge, vert et bleu dont on peut régler l'intensité d'émission. La couleur du pixel est fonction de l'intensité des phosphores : c'est le système additif RVB. Le nombre de couleurs pouvant être affichées est fonction du nombre de niveaux d'intensité autorisés par la mémoire vidéo du système.
Les systèmes 4 bits et 8 bits autorisent 16 et 256 couleurs qui sont choisies par le programme d'exploitation dans une palette de couleurs prédéfinies et qui sont sensées se rapprocher le plus possible du choix de l'utilisateur.
Dans les vrais systèmes RVB, il existe 256 niveaux différents d'intensité pour chaque phosphore : cela conduit à un codage sur 24 bits et autorise 16777216 couleurs différentes. Il existe des systèmes intermédiaires (15 bits ou 16 bits, 32768 ou 65635 couleurs) où les niveaux sont codés sur 16 bits dont les 3 ou 2 derniers sont nuls.

Imprimantes :
On utilise en général le système soustractif CMJ.
Des encres dont l’une est jaune (elle transmet le vert et le rouge et absorbe le bleu), la deuxième magenta absorbe le vert et la troisième bleu-vert (cyan) absorbe le rouge, sont superposées sur un support blanc qui réfléchit les longueurs d'ondes non absorbées par les encres. La superposition des trois encres au maximum de saturation doit donner du noir. Comme en réalité, on obtient un gris sombre, on ajoute souvent une encre noire pure et on a alors le système CMJN.



Utilisation :
Le premier programme permet de tester la correspondance entre les systèmes additifs RVB et TSL. La modification des boites de dialogues se traduit par la modification de la zone colorée. La souris (cliquez sur la bande colorée de droite) permet le choix de la teinte dans le système TSL.Il permet aussi de voir la différence entre un système additif et un système soustractif. (Cliquez sur les boutons dont le label est "RVB" ou "CMJ"). En RVB, on obtient la couleur des zones de superposition en faisant le "OU" des couleurs initiales. En "CMJ", il faut faire le "ET" car le système est soustractif.

Le second permet de choisir rapidement une couleur dans les deux systèmes et indique la correspondance.
Pour le système HSB, j'ai respecté la convention JAVA ou chaque composante est un réel compris entre 0,0 et 1,0. Ainsi la teinte H = 1,0 (rouge pur) correspond à 360° sur le cercle des couleurs et H = 0,666 (bleu pur) à 240°.
Depuis le version 5.0, Java permet de gérer la transparence. (Systèmes R, V, B, T ou r, v, b, alpha).
Une case à cocher permet de visualiser soit les couleurs opaques soit les couleurs transparentes.
Pout T = 255 (alpha = 1,0) on obtient une couleur opaque.