
La Matematica dietro la Conversione da OKLCH a RGB
Un'immersione profonda nella matematica dietro la conversione del modello di colore OKLCH in RGB, con uno strumento di conversione interattivo.
Introduzione
Man mano che cresce il supporto per il modello di colore OKLCH, cresce anche la necessità di capire come si relaziona all'onnipresente modello RGB. Mentre OKLCH offre un'uniformità percettiva superiore e l'accesso a colori ad ampia gamma, i nostri schermi (per la maggior parte) funzionano ancora con subpixel RGB.
In questo articolo, esploreremo il viaggio matematico della conversione di un colore OKLCH nello spazio sRGB standard utilizzato dalla maggior parte dei dispositivi web.
Il Convertitore Interattivo
Prima di immergerci nella matematica, prova tu stesso il processo di conversione! Regola i cursori di Luminosità (Lightness), Croma (Chroma) e Tonalità (Hue) qui sotto per vedere come vengono mappati in un codice esadecimale RGB.
La Pipeline di Conversione
La conversione da OKLCH a RGB non è un singolo passaggio; comporta una serie di trasformazioni attraverso diversi spazi colore.
Passaggio 1: OKLCH a OKLab
Innanzitutto, dobbiamo convertire le coordinate cilindriche OKLCH (Luminosità, Croma, Tonalità) nelle coordinate cartesiane OKLab (L, a, b).
- L rimane lo stesso.
- a (verde-rosso) viene calcolato usando il coseno:
- b (blu-giallo) viene calcolato usando il seno:
(Nota: Assicurati che H sia in radianti per questi calcoli.)
Passaggio 2: OKLab a RGB Lineare (Linear RGB)
Successivamente, ci spostiamo dallo spazio percettivo OKLab a uno spazio RGB "Lineare". Questa trasformazione avviene in tre sotto-fasi:
2.1 OKLab a LMS (Risposta dei Coni)
Trasformiamo prima le coordinate L, a, b in un dominio intermedio LMS utilizzando una matrice specifica:
2.2 Non-linearità LMS
Il modello OKLab utilizza una non-linearità della radice cubica. Per tornare all'intensità luminosa lineare, dobbiamo elevare al cubo i valori LMS risultanti:
2.3 LMS a RGB Lineare
Infine, convertiamo questi valori LMS lineari in RGB Lineare utilizzando un'altra trasformazione matriciale:
Passaggio 3: RGB Lineare a sRGB (Correzione Gamma)
Infine, la maggior parte degli schermi richiede segnali "Correcti Gamma". Questo perché gli occhi umani sono più sensibili alle sfumature scure rispetto a quelle chiare.
La conversione sRGB standard utilizza una funzione di trasferimento:
- Se il valore è molto piccolo (), moltiplicare per 12.92.
- Altrimenti, elevare alla potenza di e applicare offset di scala.
Questo passaggio finale ci dà i familiari valori 0-255 (dopo il ridimensionamento) per Rosso, Verde e Blu.
Esempio di Calcolo
Tracciamo oklch(60% 0.15 250) attraverso questa pipeline:
-
A OKLab:
-
A RGB Lineare (dopo trasformazione matriciale):
-
A sRGB (dopo correzione Gamma):
- Hex:
#2784D5
Conclusione
Comprendere queste conversioni evidenzia la complessità nascosta dietro una semplice dichiarazione di colore CSS. Mentre i browser moderni gestiscono questo automaticamente, conoscere la matematica ci dà un apprezzamento più profondo per la precisione della scienza del colore digitale.
Autore
Categorie
Altri Post

Capire il modello di colore RGB
Un approfondimento su come Rosso, Verde e Blu si combinano per creare colori sullo schermo.

Sblocca Colori Vivaci con OKLCH
Scopri come il modello di colore OKLCH offre uno spazio colore moderno e percettivamente uniforme, sbloccando tutto il potenziale del tuo display.

Padroneggiare il colore con il modello HSV
Comprendere Tonalità, Saturazione e Valore per una selezione del colore più intuitiva.

