Convertitore LAB in hex
Una luminosità di 53.2408 con a a 80.0925 e b a 67.2032 dà #FF0000, rosso puro, e il risultato Le segnala che è stato tagliato per rientrare nello schermo. Trasformi le misure di laboratorio in colori utilizzabili. Gratis nel Suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- L
- 53,2408
- A
- 80,0925
- B
- 67,2032
- X
- 41,245661
- Y
- 21,267295
- Z
- 1,933391
- Resistenza (Ω)
- 255
Questo convertitore da LAB a hex trasforma coordinate CIE L*a*b* in un colore sRGB a sei cifre seguendo un percorso D65 trasparente. Convalida L*, a* e b*, ricostruisce CIE XYZ, converte XYZ in sRGB lineare, applica la curva di trasferimento sRGB standard e arrotonda i canali risultanti a byte. I colori esterni al gamut sRGB visualizzabile vengono limitati in sicurezza e segnalati nella risposta, senza produrre canali non validi.
Dati accettati e risultati restituiti dal convertitore
Inserisca tre coordinate numeriche: l per la luminosità CIE L*, a per l’asse dal verde al rosso e b per l’asse dal blu al giallo. La luminosità deve essere compresa tra zero e cento, mentre ciascuna coordinata cromatica deve trovarsi tra meno duecento e duecento. Questi limiti coprono i valori Lab pratici e rilevano prima della conversione campi scambiati, infiniti, valori mancanti e record chiaramente danneggiati.
La risposta ripete le coordinate convalidate e fornisce i valori intermedi X, Y e Z sulla consueta scala da zero a cento. Il risultato hex rimane sempre valido.
Come Lab diventa XYZ e poi un colore hex
Il calcolo usa il bianco di riferimento D65 standard associato a sRGB. Prima L*, a* e b* vengono riorganizzati nei tre termini pivot normalmente chiamati f-x, f-y e f-z. Ogni termine attraversa il pivot CIE Lab inverso: i valori superiori a sei ventinovesimi vengono elevati al cubo, mentre quelli inferiori usano il ramo lineare corrispondente.
Moltiplicando i risultati per il bianco D65 si ricostruisce CIE XYZ. Una matrice fissa tre per tre converte quindi XYZ in sRGB lineare. In questa fase un componente può legittimamente essere negativo o maggiore di uno, perché Lab descrive colori oltre il gamut visualizzabile sRGB.
Il convertitore registra la condizione prima di modificare i valori. Ogni componente lineare riceve poi la curva ufficiale di companding sRGB a tratti. I valori codificati vengono limitati tra zero e uno, moltiplicati per duecentocinquantacinque e arrotondati all’intero più vicino.
Infine, ogni byte viene formattato con esattamente due cifre esadecimali maiuscole e concatenato dopo un cancelletto. I canali visualizzati non vengono quindi calcolati da campi XYZ già arrotondati, evitando una perdita di precisione non necessaria vicino alle soglie dei byte.
Uso delle informazioni sul gamut e dei risultati deterministici
Lab include molti più colori teorici di quanti uno schermo sRGB tipico possa riprodurre, quindi un convertitore necessita di una politica esplicita per i risultati impossibili. Questa capacità applica il ritaglio dei canali, una regola semplice e riproducibile: i componenti lineari negativi diventano zero e quelli superiori a uno diventano uno. Conservi il valore hex generato quando Le serve un’alternativa concreta compatibile con CSS, ma mantenga le coordinate Lab originali quando conta la fedeltà cromatica o quando un futuro flusso wide-gamut potrà gestire meglio la sorgente.
Nei sistemi di controllo qualità, consideri true un motivo per riesaminare o rimappare il colore con una strategia dedicata. Anche il determinismo è intenzionale. L’implementazione esegue soltanto aritmetica e formattazione fisse: non legge mai l’ora, non usa casualità, non chiama servizi remoti, non consulta profili colore locali e non dipende dal rendering del browser.
Il convertitore è utile per snapshot test, pipeline di build, normalizzazione di database e strumenti condivisi per design system.
Casi d'uso
Pubblicare token di design
Trasformi colori Lab di marca misurati o definiti in valori hex stabili a sei cifre per variabili CSS, documentazione e temi applicativi.
Verificare i limiti del gamut sRGB
Individui i campioni Lab che richiedono il ritaglio dei canali prima di essere rappresentati sui normali display sRGB.
Domande frequenti
Quale punto di bianco viene usato?
La conversione usa il bianco D65 Xn 0.95047, Yn 1.00000 e Zn 1.08883, coerente con il percorso di conversione sRGB standard.
Il valore hex restituito ha sempre sei cifre?
Sì. Ogni byte RGB limitato viene reso con due cifre esadecimali maiuscole, inclusi gli zeri iniziali, dopo un cancelletto.
Questo convertitore conserva la trasparenza?
No. L’input CIE Lab non ha una coordinata alfa, quindi l’output è un colore hex opaco a sei cifre e non un valore a otto cifre.
Cosa succede se un colore LAB non si può mostrare sullo schermo?
Ogni canale fuori dall'intervallo visualizzabile viene portato al bordo più vicino, quindi ottiene sempre un hex valido. Il risultato viene segnato come fuori intervallo e i colori estremi possono cambiare un po' di tinta o intensità.
Quale colore hex corrisponde a luminosità 53.2408 con a a 80.0925 e b a 67.2032?
È #FF0000, rosso puro, con il rosso a 255 e verde e blu a 0. Il valore esatto cade appena fuori dall'intervallo dello schermo, per questo risulta segnato come tagliato.
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/lab-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"l":53.2408,"a":80.0925,"b":67.2032}'const res = await fetch("https://api.kit.forhosting.com/color/lab-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"l": 53.2408,
"a": 80.0925,
"b": 67.2032
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/lab-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"l": 53.2408,
"a": 80.0925,
"b": 67.2032
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/lab-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"l":53.2408,"a":80.0925,"b":67.2032}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"l":53.2408,"a":80.0925,"b":67.2032}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/lab-hex", 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
{
"l": 53.2408,
"a": 80.0925,
"b": 67.2032
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.lab_hex",
"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
Lo stesso calcolo deterministico funziona nel Suo browser e tramite API al costo di $0.002 per richiesta riuscita, senza interrogazioni di rete, input casuali o dipendenza dall’orologio.
Dati accettati e risultati restituiti dal convertitore
Restituisce inoltre canali interi rosso, verde e blu, una stringa hex maiuscola di sei cifre preceduta da cancelletto e un booleano out_of_gamut. false indica che la conversione non limitata è rimasta dentro sRGB. true significa che almeno un componente sRGB lineare è sceso sotto zero o ha superato uno ed è stato portato al limite visualizzabile più vicino. Gli errori di convalida usano invalid_input invece di inserire silenziosamente valori predefiniti.
Come Lab diventa XYZ e poi un colore hex
I valori XYZ intermedi vengono arrotondati a sei decimali per produrre JSON leggibile e stabile, ma il percorso RGB usa la piena precisione degli intermedi in virgola mobile.
Uso delle informazioni sul gamut e dei risultati deterministici
Il ritaglio può cambiare tonalità o croma nei colori estremi; il flag out_of_gamut offre quindi un contesto importante e non va ignorato. Un input JSON identico produce pertanto un output identico. La conversione interattiva è gratuita nel browser; tramite API costa $0.002 per richiesta riuscita e segue esattamente lo stesso percorso matematico.
Casi di integrazione
Creare fixture di test deterministiche
Generi risultati XYZ, RGB e hex ripetibili per librerie di colori, importatori e pipeline di convalida dei dati.
Domande tecniche
Quanto costa la conversione da LAB a hex?
È gratuita nel Suo browser. Tramite API, ogni richiesta riuscita costa $0.002; gli input non validi vengono rifiutati prima di produrre un risultato.
Perché il risultato mostra out_of_gamut?
Lab può descrivere colori fuori da sRGB. Il flag vale true quando un canale RGB lineare non limitato ha richiesto ritaglio sotto zero o sopra uno.