
La Mathématique derrière la Conversion de OKLCH en RVB
Une plongée profonde dans les mathématiques derrière la conversion du modèle de couleur OKLCH en RVB, avec un outil de conversion interactif.
Introduction
À mesure que le support du modèle de couleur OKLCH se développe, le besoin de comprendre comment il se rapporte au modèle RVB omniprésent augmente également. Bien que OKLCH offre une uniformité perceptuelle supérieure et un accès aux couleurs à large gamme, nos écrans (pour la plupart) fonctionnent toujours avec des sous-pixels RVB.
Dans cet article, nous explorerons le voyage mathématique de la conversion d'une couleur OKLCH vers l'espace sRGB standard utilisé par la plupart des appareils web.
Le Convertisseur Interactif
Avant de plonger dans les mathématiques, essayez vous-même le processus de conversion ! Ajustez les curseurs de Luminosité (Lightness), Chroma et Teinte (Hue) ci-dessous pour voir comment ils correspondent à un code hexadécimal RVB.
Le Pipeline de Conversion
La conversion de OKLCH en RVB n'est pas une étape unique ; elle implique une série de transformations à travers différents espaces colorimétriques.
Étape 1 : OKLCH vers OKLab
Tout d'abord, nous devons convertir les coordonnées cylindriques OKLCH (Luminosité, Chroma, Teinte) en coordonnées cartésiennes OKLab (L, a, b).
- L reste le même.
- a (vert-rouge) est calculé en utilisant le cosinus :
- b (bleu-jaune) est calculé en utilisant le sinus :
(Note : Assurez-vous que H est en radians pour ces calculs.)
Étape 2 : OKLab vers RVB Linéaire (Linear RGB)
Ensuite, nous passons de l'espace perceptuel OKLab à un espace RVB "Linéaire". Cette transformation se fait en trois sous-étapes :
2.1 OKLab vers LMS (Réponse des Cônes)
Nous transformons d'abord les coordonnées L, a, b dans un domaine intermédiaire LMS en utilisant une matrice spécifique :
2.2 Non-linéarité LMS
Le modèle OKLab utilise une non-linéarité de racine cubique. Pour revenir à l'intensité lumineuse linéaire, nous devons mettre au cube les valeurs LMS résultantes :
2.3 LMS vers RVB Linéaire
Enfin, nous convertissons ces valeurs LMS linéaires en RVB Linéaire en utilisant une autre transformation matricielle :
Étape 3 : RVB Linéaire vers sRGB (Correction Gamma)
Enfin, la plupart des écrans nécessitent des signaux "Corrigés Gamma". C'est parce que les yeux humains sont plus sensibles aux nuances sombres qu'aux claires.
La conversion sRGB standard utilise une fonction de transfert :
- Si la valeur est très petite (), multiplier par 12.92.
- Sinon, élever à la puissance et appliquer des décalages d'échelle.
Cette dernière étape nous donne les valeurs familières de 0 à 255 (après mise à l'échelle) pour le Rouge, le Vert et le Bleu.
Exemple de Calcul
Traçons oklch(60% 0.15 250) à travers ce pipeline :
-
Vers OKLab :
-
Vers RVB Linéaire (après transformation matricielle) :
-
Vers sRGB (après correction Gamma) :
- Hex :
#2784D5
Conclusion
Comprendre ces conversions met en évidence la complexité cachée derrière une simple déclaration de couleur CSS. Bien que les navigateurs modernes gèrent cela automatiquement, connaître les mathématiques nous donne une appréciation plus profonde de la précision de la science numérique des couleurs.
Auteur
Catégories
Plus d'Articles

Comprendre le modèle de couleur RVB (RGB)
Une plongée en profondeur dans la façon dont le rouge, le vert et le bleu se combinent pour créer des couleurs sur votre écran.

Maîtriser la couleur avec le modèle HSV
Comprendre la teinte, la saturation et la valeur pour une sélection de couleurs plus intuitive.

Libérez des Couleurs Éclatantes avec OKLCH
Découvrez comment le modèle de couleur OKLCH offre un espace colorimétrique moderne et perceptuellement uniforme qui libère tout le potentiel de votre écran.

