Convertitore RGB in OKLCH
Ottenga le coordinate OKLCH di un colore RGB: 255, 87, 51 diventa luminosità 0.680358, croma 0.210012 e tinta 33.691637°. Costruisca scale e palette con passaggi che all’occhio appaiono regolari. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Resistenza (Ω)
- 255
- G
- 87
- B
- 51
- L
- 0,680358
- C
- 0,210012
- H
- 33,691637
- OKLCH
- oklch(0.680358 0.210012 33.691637)
Questo convertitore da RGB a OKLCH trasforma tre comuni canali sRGB in coordinate cilindriche percettivamente uniformi. Inserisca valori di rosso, verde e blu da 0 a 255 per ottenere luminosità, croma e tonalità OKLCH, insieme a una stringa pronta per CSS. Il calcolo segue l’intero percorso deterministico: decodifica della funzione di trasferimento sRGB, matrici da RGB lineare a OKLab e conversione cilindrica da OKLab a OKLCH. Canali mancanti, non finiti, errati o fuori intervallo restituiscono un chiaro errore di convalida senza essere limitati silenziosamente.
Perché convertire le coordinate sRGB in OKLCH
RGB descrive come uno schermo combina luce rossa, verde e blu, ma variazioni numeriche uguali in questi canali non appaiono quasi mai della stessa entità. Aumentare un canale di venti unità può produrre una differenza evidente in una zona della gamma e minima in un’altra. OKLab è stato progettato per avvicinare le distanze tra coordinate alle differenze cromatiche percepite.
OKLCH dispone OKLab in coordinate cilindriche più intuitive: la luminosità indica quanto il colore appare chiaro o scuro, il croma misura la distanza dall’asse neutro e la tonalità esprime in gradi l’angolo intorno a tale asse. È quindi utile per scale di token, colori correlati e confronti tra palette. Il contratto accetta esclusivamente veri canali sRGB tra 0 e 255, comprese le frazioni, senza tentare di interpretare valori esadecimali, percentuali, nomi di colore o profili wide-gamut.
La tonalità è normalizzata tra zero e meno di 360 gradi. Per un colore acromatico, privo di tonalità matematica, il risultato impiega zero come convenzione stabile e deterministica.
Come viene calcolata la conversione
Non si può applicare una matrice OKLab direttamente ai numeri RGB visualizzati, perché i normali valori sRGB sono codificati da una funzione di trasferimento. Ogni canale viene prima diviso per 255 e decodificato con la funzione sRGB a tratti: i valori bassi usano il segmento lineare, quelli maggiori la funzione di potenza. Le tre componenti di luce lineare vengono moltiplicate per la matrice fissa da RGB lineare a LMS prevista da OKLab.
Dopo la radice cubica di ogni componente LMS, una seconda matrice produce la luminosità OKLab e i due assi opponenti a e b. La trasformazione cilindrica calcola il croma come lunghezza euclidea della coppia a, b e la tonalità con atan2, convertita da radianti a gradi e normalizzata sul cerchio positivo. La luminosità segue la scala OKLab convenzionale, approssimativamente da zero a uno per sRGB, non una percentuale.
La stringa oklch usa esattamente gli stessi valori arrotondati.
Usare il risultato in modo affidabile
Invii campi numerici denominati r, g e b. Sono tutti obbligatori, finiti e compresi nell’intervallo inclusivo da 0 a 255. Le frazioni sono ammesse perché immagini campionate e pipeline intermedie possono conservare una precisione superiore agli otto bit; stringhe numeriche, NaN, Infinity, array e oggetti non sono invece accettati come canali.
Una risposta valida ripete i canali controllati e restituisce l, c, h e una stringa oklch compatta. Durante la migrazione di una palette, conservi i valori RGB originali accanto alle coordinate convertite finché i test visivi non confermano il risultato. OKLCH agevola la modifica percettiva, ma aumentare il croma o cambiare luminosità può generare un colore fuori dalla gamma dello schermo o del formato finale.
Questo convertitore descrive il colore sRGB fornito; non esegue gamut mapping, verifica del contrasto, composizione alfa, conversione di profili o certificazione di accessibilità. Per tali operazioni usi strumenti dedicati. Senza rete, orologio, casualità o stato mutabile, entrambi i canali producono lo stesso risultato.
Casi d'uso
Modernizzare i token di design
Converta i colori RGB precedenti in OKLCH prima di creare scale percettive ordinate per luminosità e croma.
Analizzare le relazioni di una palette
Confronti luminosità, croma e tonalità senza considerare la distanza grezza tra canali RGB come distanza visiva.
Preparare colori per CSS
Generi una stringa OKLCH stabile da sRGB per documentazione, prototipi, fogli di stile o pipeline di token.
Domande frequenti
Quale intervallo RGB è accettato?
Ogni canale r, g e b deve essere un numero finito tra 0 e 255 inclusi. Sono ammessi interi e frazioni.
La luminosità OKLCH viene restituita in percentuale?
No. Il campo l usa la scala numerica OKLab convenzionale, circa da 0 a 1 per sRGB. Moltiplichi per 100 solo se la destinazione richiede una percentuale.
Perché la tonalità è zero per grigio, nero o bianco?
La tonalità non è definita quando il croma è quasi nullo. Il convertitore restituisce 0 gradi come convenzione deterministica invece di null o di un angolo dovuto al rumore numerico.
Lo strumento esegue il gamut mapping?
No. Converte un colore sRGB già nella sua gamma. Se modifica poi le coordinate, usi un mappatore prima di esportare verso uno spazio limitato.
Posso inserire canali con decimali?
Sì. Ogni canale può essere qualsiasi numero da 0 a 255, decimali compresi. Codici esadecimali, percentuali e nomi di colore non vengono indovinati, e i valori mancanti o fuori intervallo sono rifiutati invece che tagliati.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/color/rgb-oklch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":255,"g":87,"b":51}'const res = await fetch("https://api.kit.forhosting.com/color/rgb-oklch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 255,
"g": 87,
"b": 51
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb-oklch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 255,
"g": 87,
"b": 51
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb-oklch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":255,"g":87,"b":51}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":255,"g":87,"b":51}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb-oklch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"r": 255,
"g": 87,
"b": 51
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_oklch",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Come viene calcolata la conversione
Le coordinate sono arrotondate a sei decimali per un JSON stabile, leggibile e preciso.
Usare il risultato in modo affidabile
Le richieste API riuscite costano $0.002 per elemento, mentre la versione browser opera localmente.
Domande tecniche
Quanto costa una conversione API?
Una richiesta riuscita costa $0.002 per elemento. Il convertitore nel browser funziona localmente e gli input errati restituiscono un errore tipizzato.