Convertitore da RGB a LCH
Descriva un colore RGB come lo si regola a mano: luminosità da 0 per il nero a circa 100 per il bianco, croma come vivacità e tinta come angolo da 0 fino a 360°. Cambi un valore senza toccare gli altri. 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
- 128
- B
- 0
- L
- 67,0548169961
- C
- 85,5142055704
- H
- 59,9466748349
- L*
- 67,0548169961
Questo convertitore da RGB a LCH prende tre intensità di canale sRGB — rosso, verde e blu — ciascuna come intero da zero a duecentocinquantacinque, e restituisce coordinate CIE LCH (luminosità L*, croma C* e angolo di tinta h° in gradi) calcolate con il punto bianco standard D65 usato nei flussi web e di stampa. Designer, ingegneri di accessibilità e studenti usano il LCH quando una palette vive in canali a otto bit ma il compito richiede uno spazio strutturato in modo percettivo dove luminosità, croma e tinta si modificano in modo indipendente, senza gli assi rettangolari a* e b* del Lab. Il motore è completamente deterministico: decomprime ogni canale in modo inverso, moltiplica per la matrice D65 da sRGB a XYZ, normalizza rispetto al bianco di riferimento D65, forma il CIE Lab e poi deriva C* come l'ipotenusa di a* e b* e h° da atan2 di b* e a* — senza mai chiamare la rete, campionare casualità o dipendere dall'orologio.
Cosa significa la conversione da RGB a LCH e cosa contiene la risposta
Nel modello sRGB a otto bit usato da CSS e dalla maggior parte della grafica web, ciascuno di rosso, verde e blu è un canale intero da zero a duecentocinquantacinque. CIE LCH è la forma polare di CIE L*a*b*: lo stesso stimolo si esprime come luminosità L* (circa zero per il nero fino a circa cento per il bianco diffuso), croma C* che misura la distanza dall'asse neutro, e tinta h° come un angolo attorno a quell'asse in gradi da zero fino a, escluso, trecentosessanta.
La conversione prima scala ogni canale dividendo per duecentocinquantacinque, poi annulla il gamma sRGB (la curva di decompressione inversa IEC sei-uno-nove-sei-sei) così i valori diventano luce lineare. Quei canali lineari passano attraverso una matrice fissa tre per tre verso CIE XYZ sotto l'illuminante D65; ogni componente tristimolo è divisa per il bianco di riferimento D65, poi si applica la funzione pivot f della CIE — radice cubica sopra una piccola soglia, ramo lineare sotto — per formare L*, a* e b*.
Dal Lab il passo cilindrico è in forma chiusa: C* è la lunghezza euclidea del vettore a*b*, e h° è l'arcotangente a due argomenti di b* e a* convertita in gradi e avvolta nell'intervallo semiaperto da zero a trecentosessanta. Quando il croma è effettivamente zero la tinta è geometricamente indefinita, quindi questa calcolatrice definisce h° come zero per i colori acromatici come nero puro, bianco puro e grigi neutri.
Non esiste un percorso che accetti percentuali o canali in virgola mobile in ingresso, né un clamp silenzioso da duecentocinquantasei a duecentocinquantacinque.
Dove la conversione da RGB a LCH si inserisce in design, studio e software
I designer incontrano questa mappatura quando una brand guide elenca campioni RGB e un flusso di produzione o di editing percettivo si aspetta target LCH, quando la luminosità deve restare fissa mentre la tinta ruota per tinte e ombre, o quando un design system documenta affiancati i valori di riferimento RGB a schermo e LCH per la generazione di rampe.
Gli ingegneri di accessibilità usano L* e C* per ragionare sulla luminosità percepita separata dalla forza cromatica, per verificare che due stati dell'interfaccia restino distinguibili dopo spostamenti di tinta, o per preparare note che poi alimenteranno controlli formali delta-E in Lab prima di riesprimere lo stesso colore come LCH per l'authoring.
Gli studenti lo vedono nei corsi di computer graphics e scienza del colore che introducono XYZ, Lab e poi la forma cilindrica LCH, nelle lezioni di fotografia digitale che passano dagli slider di canale ai controlli di tinta e croma, e nei riscaldamenti da colloquio che chiedono la conversione mentale di un breve triplo in coordinate Lab polari.
Lo abbini a strumenti colore multi-formato quando serve esadecimale o CMYK, al convertitore Lab quando servono solo a* e b* rettangolari, e ad altri convertitori gratuiti deterministici quando costruisce un piccolo laboratorio di igiene del design system.
Casi d'uso
Editing percettivo con tinta e croma indipendenti
Trasformi tripli RGB di brand in CIE LCH così i designer possono ruotare la tinta o scalare il croma tenendo fissa la luminosità per rampe e varianti.
Compiti e demo didattiche
Verifichi il lavoro sRGB verso LCH degli studenti e dimostri dal vivo XYZ, Lab e LCH polare senza calcolatrici opache.
Domande frequenti
Quanto costa il convertitore da RGB a LCH?
È gratis nel Suo browser in questa pagina.
Quale intervallo è consentito per r, g e b?
Ogni canale deve essere un intero da 0 a 255 inclusi.
Quale punto bianco e quale percorso usa?
La catena è sRGB → linear → XYZ → Lab → LCH.
Come si definiscono C* e h° a partire dal Lab?
C* è hypot(a*, b*). La tinta h° è atan2(b*, a*) in gradi, avvolta in [0, 360). Quando C* è effettivamente zero (acromatico), h° è definito come 0.
Perché un grigio riceve una tinta pari a 0?
Grigio, nero e bianco non hanno croma, quindi il loro angolo di tinta non è definito. Il convertitore lo fissa a 0 per convenzione, così lo stesso colore neutro dà sempre lo stesso risultato.
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-lch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":255,"g":128,"b":0}'const res = await fetch("https://api.kit.forhosting.com/color/rgb-lch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 255,
"g": 128,
"b": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb-lch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 255,
"g": 128,
"b": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb-lch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":255,"g":128,"b":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":255,"g":128,"b":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb-lch", 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": 128,
"b": 0
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_lch",
"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.
Limiti
min_channel | 0 |
max_channel | 255 |
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
I canali fuori dall'intervallo zero-duecentocinquantacinque vengono rifiutati con un chiaro errore invalid_input invece di essere limitati in silenzio.
Cosa significa la conversione da RGB a LCH e cosa contiene la risposta
La risposta restituisce gli interi validati r, g e b; L, C e H (con alias L_star, C_star e h_deg); a* e b* intermedi del Lab come a, lab_b, a_star e b_star così che b* del Lab non collida con il canale blu RGB; X Y Z intermedi; stringhe di riepilogo rgb, lch e lab; white_point impostato a D65; l'etichetta di metodo rgb_to_lch; e un breve promemoria della formula. Il motore costruisce un triplo LCH esatto per tre canali legali oppure rifiuta la richiesta con invalid_input. I casi rifiutati includono un campo r, g o b mancante, stringhe vuote dopo il trim, numeri non interi, testo non numerico, Infinity o NaN, e qualsiasi canale strettamente sotto zero o sopra duecentocinquantacinque. Se Le serve LCH verso RGB, packaging esadecimale, HSV, HSL o CMYK, usi uno strumento inverso o multi-formato dedicato; questa pagina risponde solo a canali sRGB interi convertiti in un triplo CIE LCH stabile, adatto a token, test unitari e consumatori API che vogliono controlli indipendenti di luminosità, croma e tinta.
Come vengono letti r, g e b e come il LCH resta riproducibile
Gli spazi esterni sui canali stringa vengono rimossi; un più iniziale opzionale è consentito solo se i caratteri restanti sono cifre decimali che formano un intero nell'intervallo. Un numero JavaScript nudo è accettato solo se è un intero finito tra zero e duecentocinquantacinque; valori come centoventotto virgola cinque falliscono la validazione anziché essere arrotondati, e valori negativi o da duecentocinquantasei in su falliscono con un messaggio che nomina il canale e afferma che deve restare tra zero e duecentocinquantacinque. Il rosso puro si mappa a un L* moderato con C* grande e tinta vicino a quaranta gradi; il bianco puro e il nero puro si mappano a croma zero con h° definito come zero; verdi e blu saturi cadono nei settori di tinta attesi del piano Lab. I campi preferiti sono r per il rosso, g per il verde e b per il blu, ma sono accettati gli alias red e R maiuscola per il rosso, green e G maiuscola per il verde, e blue e B maiuscola per il blu, così fogli di calcolo, query string e form tipizzati possono riutilizzare lo stesso contratto senza rinominare le colonne. Abbini l'esecuzione gratuita nel browser di questa pagina all'API a pagamento quando le serve lo stesso risultato matematico in una pipeline automatizzata senza reimplementare Lei stesso il gamma inverso, la normalizzazione D65 e la conversione polare da Lab a LCH.
Dove la conversione da RGB a LCH si inserisce in design, studio e software
In questa pagina il lavoro gira interamente nel Suo browser; tramite l'API ogni consultazione riuscita costa $0.002, la validazione fallita non viene addebitata e nulla viene memorizzato dopo la risposta. Quella separazione — esplorazione interattiva gratuita e API a pagamento identica — combacia con il resto del catalogo tier A del KIT e Le consente di passare da una demo in aula o da una design review a una pipeline automatizzata senza cambiare il risultato matematico.
Casi di integrazione
Fixture di test deterministiche
Generi risultati LCH riproducibili per test unitari, controlli di proprietà e asserzioni CI su helper colore e design token.
Domande tecniche
Perché 256 viene rifiutato invece di essere limitato?
Il clamp silenzioso nasconde errori nei dati. I canali fuori intervallo falliscono con invalid_input così il chiamante corregge i valori sorgente invece di pubblicare il colore sbagliato.