Conversor de LAB para RGB
A cor LAB com luminosidade 53.2407941413, a 80.0924595964 e b 67.2031965159 vira rgb(255, 0, 0), o vermelho puro #FF0000. Leve para a tela as metas LAB do seu manual de marca com o mesmo resultado sempre. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- L
- 53,2407941413
- A
- 80,0924595964
- Lab b
- 67,2031965159
- L*
- 53,2407941413
- a*
- 80,0924595964
- b*
- 67,2031965159
- Resistência (Ω)
- 255
Este conversor de LAB para RGB recebe três componentes CIE L*a*b* —a luminosidade L* de zero a cem, a* no eixo verde–vermelho e b* no eixo azul–amarelo— e devolve inteiros de canal sRGB de zero a duzentos e cinquenta e cinco sob o ponto branco padrão D65 usado na web. Designers, engenheiros de impressão e estudantes usam esse mapeamento quando uma marca ou um fluxo de impressão guarda alvos Lab, mas a interface do produto, o CSS ou os tokens de design precisam de vermelho, verde e azul de oito bits. O motor é totalmente determinístico: inverte o pivô CIE Lab para XYZ, multiplica pela matriz inversa sRGB de D65, aplica o gamma sRGB direto e depois arredonda e recorta cada canal —nunca chama a rede, amostra aleatoriedade nem depende do relógio.
O que significa a conversão de Lab para RGB e o que a resposta contém
CIE L*a*b* reorganiza um estímulo de cor em um eixo de luminosidade L* (zero para o preto até cerca de cem para o branco difuso sob D65) e dois eixos cromáticos: a* vai de verde negativo a vermelho positivo, e b* vai de azul negativo a amarelo positivo. O trabalho de tela e CSS ainda precisa de canais sRGB de oito bits, por isso esta calculadora inverte o pipeline gráfico habitual.
Primeiro reconstrói XYZ relativo a partir de L*, a* e b* com o pivô inverso da CIE e o branco de referência D65, depois multiplica pela inversa da matriz sRGB padrão de D65 para obter luz linear vermelha, verde e azul. O companding sRGB direto restaura a curva gamma usada pelos navegadores; cada canal unitário é escalado por duzentos e cinquenta e cinco, arredondado ao inteiro mais próximo e recortado entre zero e duzentos e cinquenta e cinco.
Como ler os três valores LAB
Espaços em branco externos em números em string são removidos; notação científica é permitida quando o token é um decimal finito. Um número JavaScript puro é aceito somente quando é finito e está dentro do intervalo declarado: L* deve permanecer de zero a cem, e a* e b* devem permanecer dentro de mais ou menos cento e sessenta.
Valores fora desses limites falham com uma mensagem que nomeia o campo e indica o intervalo permitido, em vez de serem recortados do lado Lab —o recorte aplica-se apenas aos canais sRGB finais quando a cor está fora do gamut de exibição. Lab branco puro mapeia para duzentos e cinquenta e cinco nos três canais; preto puro para zero; o triplo Lab de vermelho puro que vem da inversa do sRGB vermelho completo volta a duzentos e cinquenta e cinco, zero, zero dentro do arredondamento.
Onde a conversão de Lab para RGB se encaixa no design, no estudo e no software
Designers encontram esse mapeamento quando um guia de marca ou uma especificação de impressão lista alvos Lab e a interface do produto espera amostras CSS rgb() ou hex, quando um design system documenta lado a lado referências Lab e RGB de tela, ou quando uma paleta precisa ser pré-visualizada em um monitor sRGB padrão após edições gerenciadas por cor em Lab. Fluxos de acessibilidade e pesquisa às vezes calculam em Lab por uniformidade e depois projetam de volta para sRGB na entrega.
Estudantes veem o caminho inverso em cursos de gráficos por computador e ciência da cor que introduzem XYZ e Lab depois de sRGB, em aulas de fotografia digital que transitam entre ajustes Lab e controles de canal, e em aquecimentos de entrevista que pedem a conversão mental de um triplo curto. Combine com RGB para Lab quando precisar do mapa direto, e com ferramentas de cor multiformato quando precisar de empacotamento hex ou CMYK em torno dos mesmos números.
Casos de uso
Alvos Lab de impressão para RGB de tela
Transforme valores CIE L*a*b* de marca ou de prova em canais sRGB e hex para CSS, tokens e pré-visualizações das partes interessadas.
Tarefas e demonstrações didáticas
Verifique o trabalho de Lab para sRGB dos alunos e faça demonstrações ao vivo de XYZ e da inversa D65 sem apps de calculadora opacas.
Perguntas frequentes
O que significam L*, a* e b* em uma cor LAB?
L* é a luminosidade, do preto ao branco difuso. a* vai do verde, nos valores negativos, ao vermelho, nos positivos; e b* vai do azul, nos negativos, ao amarelo, nos positivos.
Qual cor RGB corresponde ao LAB 53.2407941413, 80.0924595964, 67.2031965159?
É rgb(255, 0, 0), o vermelho puro, escrito em hex como #FF0000. Esse trio LAB é exatamente o que sai do vermelho pleno de tela, então a conversão de volta devolve o mesmo vermelho.
O que acontece se a cor LAB ficar fora do que a tela consegue mostrar?
Cada canal é limitado à faixa 0–255, então você sempre recebe uma cor utilizável, e o resultado vem marcado como fora da gama para indicar que foi cortado e é só uma aproximação.
Qual ponto branco a conversão usa?
D65, o branco de luz do dia padrão das telas sRGB e da web. Se os seus valores LAB foram medidos com outro ponto branco, converta-os antes para D65 ou as cores vão se desviar.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/color/lab-rgb \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"l":53.24,"a":80.09,"lab_b":67.2}'const res = await fetch("https://api.kit.forhosting.com/color/lab-rgb", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"l": 53.24,
"a": 80.09,
"lab_b": 67.2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/lab-rgb",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"l": 53.24,
"a": 80.09,
"lab_b": 67.2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/lab-rgb", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"l":53.24,"a":80.09,"lab_b":67.2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"l":53.24,"a":80.09,"lab_b":67.2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/lab-rgb", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"l": 53.24,
"a": 80.09,
"lab_b": 67.2
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.lab_rgb",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
l_min | 0 |
l_max | 100 |
a_min | -160 |
a_max | 160 |
lab_b_min | -160 |
lab_b_max | 160 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Componentes fora dos intervalos declarados são rejeitados com um erro claro de invalid_input; cores fora do gamut sRGB são recortadas para o conjunto de canais exibíveis mais próximo e sinalizadas com out_of_gamut para que o chamador veja o recorte.
O que significa a conversão de Lab para RGB e o que a resposta contém
A resposta devolve l, a e lab_b validados (mais os aliases L_star, a_star e b_star), os canais inteiros r, g e b, X Y Z intermediários arredondados para JSON estável, uma string hex, strings de resumo rgb e lab, out_of_gamut como booleano, white_point definido como D65, a tag de método lab_to_rgb e um breve lembrete da fórmula. Lab b* é sempre nomeado lab_b ou b_star na saída para nunca colidir com o campo do canal azul RGB b. Não há aceitação silenciosa de Infinity, NaN ou strings vazias: componentes ausentes ou fora do intervalo falham com invalid_input. Se você precisar de RGB para Lab, empacotamento hex, HSV, HSL ou CMYK, use uma ferramenta inversa ou multiformato dedicada; esta página responde apenas a CIE Lab sob D65 para um triplo sRGB estável, adequado para tokens, testes unitários e consumidores da API.
Como l, a e lab_b são lidos e como o RGB permanece reproduzível
Os campos preferidos são l para L*, a para a* e lab_b para b*, mas os aliases L, L_star e lightness para luminosidade, a_star e A maiúsculo para a*, e b_star, b e B maiúsculo para b* são aceitos para que planilhas, query strings e formulários tipados reutilizem o mesmo contrato sem renomear colunas. Após a validação, a conversão usa apenas aritmética em forma fechada sobre o pivô inverso, a matriz inversa fixa e a curva gamma IEC, e depois arredonda os componentes XYZ para uma largura decimal fixa para que goldens de JSON e asserções de integração contínua permaneçam estáveis entre plataformas. Combine a execução gratuita no navegador desta página com a API paga quando precisar do mesmo resultado matemático dentro de um pipeline automatizado sem reimplementar você mesmo a inversa de Lab e o gamma sRGB.
Onde a conversão de Lab para RGB se encaixa no design, no estudo e no software
Equipes de impressão e embalagem invertem medições Lab ou valores de prova em pré-visualizações aproximadas de tela para que as partes interessadas vejam uma correspondência aproximada no monitor mesmo quando a cor verdadeira está ligeiramente fora do gamut —a bandeira out_of_gamut informa que a pré-visualização foi recortada. Nesta página o trabalho roda inteiramente no seu navegador; pela API cada consulta bem-sucedida custa US$ 0,002, validação falha não é cobrada, e nada é armazenado depois que a resposta retorna. Essa divisão —exploração interativa gratuita e uma API paga idêntica— combina com o restante do catálogo tier A do KIT e permite passar de uma demonstração em sala ou revisão de design a um pipeline automatizado sem mudar o resultado matemático.
Casos de integração
Fixtures de teste determinísticos
Gere resultados RGB reproduzíveis para testes unitários, verificações de propriedades e asserções de integração contínua em helpers de cor.
Perguntas técnicas
Quanto custa o conversor de LAB para RGB?
É grátis no seu navegador nesta página. Pela API uma solicitação bem-sucedida custa US$ 0,002; entradas inválidas não são cobradas.
Qual intervalo é permitido para L*, a* e b*?
L* (campo l) deve estar entre 0 e 100 inclusive. a* e lab_b (b*) devem estar cada um entre −160 e 160. Valores fora desses intervalos, números não finitos e campos ausentes são rejeitados com invalid_input.
Qual ponto branco este conversor usa?
Iluminante D65 com branco de referência Xn=0.95047, Yn=1.0, Zn=1.08883, alinhado à prática padrão de sRGB e cor web. A resposta inclui white_point: "D65".
O que significa out_of_gamut?
Algumas cores Lab não podem ser representadas em sRGB. Os canais são recortados para 0–255 e out_of_gamut é definido como true para que você saiba que o RGB exibível é uma aproximação do Lab solicitado.
Por que Lab b* se chama lab_b?
O campo de saída b é o canal azul RGB. Lab b* é aceito e devolvido como lab_b e b_star para nunca sobrescrever o canal azul RGB.