Converter HSL para RGB
Receba números simples de vermelho, verde e azul a partir de uma cor HSL: matiz 210, saturação 80% e luminosidade 45% resultam em vermelho 23, verde 115 e azul 207. Valores fora do intervalo são apontados, nunca ajustados em silêncio. 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
- Hue
- 210
- Saturação
- 80
- Luminosidade
- 45
- Red
- 23
- Verde
- 115
- Azul
- 207
Converta uma cor HSL nos canais vermelho, verde e azul exigidos por muitas ferramentas gráficas, formatos de imagem e interfaces de software. Informe o matiz em graus e a saturação e luminosidade em porcentagens para receber três inteiros de 0 a 255. O conversor valida cada componente antes do cálculo; assim, um valor fora do intervalo gera um erro de entrada claro, em vez de uma cor inesperadamente ajustada ou circular. O cálculo puro e determinístico serve para verificações interativas, exemplos de documentação, pipelines de tokens de design e transformações automatizadas reproduzíveis.
Como entender os valores HSL
HSL descreve uma cor por meio de três conceitos que costumam ser mais fáceis de ajustar do que canais separados de vermelho, verde e azul. O matiz é um ângulo em um círculo cromático. 0 graus representa vermelho, 120 graus representa verde, 240 graus representa azul e 360 graus retorna à mesma posição vermelha de 0. A saturação controla quanto a cor aparece no resultado.
Com 0%, o matiz não tem efeito visível e a saída é um tom de cinza. Com 100%, a cor atinge o croma máximo disponível para o matiz e a luminosidade escolhidos. A luminosidade posiciona o resultado entre preto e branco. 0% é sempre preto, 50% oferece a forma mais forte de um matiz totalmente saturado e 100% é sempre branco.
Informe o matiz como número finito de 0 a 360 e a saturação e luminosidade como porcentagens finitas de 0 a 100. Os limites são aceitos. Valores fora desses intervalos são rejeitados, e não normalizados silenciosamente.
Isso ajuda a revelar tokens de design incorretos e impede que um matiz negativo ou uma porcentagem acima de 100 produza uma cor plausível, porém indesejada.
Como a conversão gera os canais RGB
Primeiro, o cálculo dimensiona o matiz em um círculo unitário e transforma as porcentagens de saturação e luminosidade em frações. Quando a saturação é 0, a cor é acromática; portanto, os três canais RGB recebem o mesmo valor derivado da luminosidade. Nos outros casos, o algoritmo calcula dois limites intermediários com base na saturação e luminosidade.
Em seguida, coleta três posições no círculo de matiz, separadas por um terço de volta: uma posição para vermelho, outra para verde e outra para azul. Uma interpolação por partes mapeia cada posição entre os limites intermediários. Por fim, cada fração de canal é multiplicada por 255 e arredondada para o inteiro mais próximo.
A resposta contém os campos vermelho, verde e azul, sempre como inteiros entre 0 e 255. Trata-se de aritmética determinística: não há acesso à rede, valores aleatórios, relógio, localidade nem estado armazenado. A conversão também considera 360 como a extremidade do círculo equivalente a 0, sem deixar de aplicar o intervalo fechado documentado.
Nenhuma entrada é limitada automaticamente, mantendo os erros de validação visíveis.
Como usar o resultado com segurança
Use os canais retornados sempre que um sistema solicitar valores RGB de oito bits. Uma folha de estilo pode inseri-los em uma expressão rgb(), uma rotina de imagem pode gravá-los em um pixel ou registro de paleta e uma compilação de tokens de design pode serializá-los para plataformas que não consomem HSL diretamente. Para uma verificação manual, informe uma cor conhecida: matiz 0, saturação 100 e luminosidade 50 produzem vermelho 255, verde 0 e azul 0.
Em automações, trate falhas separadamente das respostas bem-sucedidas: um campo ausente, um número não finito ou qualquer componente fora do intervalo é uma entrada inválida e deve ser corrigida, não repetida sem alteração. Preserve os valores HSL originais caso a equipe de design precise fazer ajustes perceptuais depois, pois esta capacidade realiza somente a conversão direta e não deduz o HSL original a partir de RGB.
Como a saída usa inteiros, ela já está pronta para consumidores RGB convencionais, sem outra política de arredondamento que possa causar diferenças de uma unidade entre aplicativos.
Casos de uso
Compilar tokens de design
Transforme tokens HSL de marca e tema em canais RGB inteiros para aplicativos e builds que exigem componentes de cor de oito bits.
Preparar valores gráficos
Converta uma seleção HSL em valores vermelho, verde e azul para canvas, ferramentas de imagem, gráficos, paletas e APIs de renderização.
Verificar cálculos de cor
Crie valores de referência determinísticos para documentação, testes unitários, scripts de migração e comparações entre implementações de cor.
Perguntas frequentes
Quais intervalos são aceitos?
O matiz deve estar entre 0 e 360. A saturação e a luminosidade devem estar entre 0 e 100. Todos os limites são inclusivos.
Por que os valores RGB são inteiros?
Os resultados normalizados dos canais são multiplicados por 255 e arredondados para uso direto em interfaces RGB comuns de oito bits.
Os matizes 0 e 360 são equivalentes?
Sim. Ambos descrevem a extremidade vermelha do círculo cromático e são válidos no intervalo fechado de 0 a 360.
Quais números RGB correspondem a matiz 210, saturação 80% e luminosidade 45%?
Vermelho 23, verde 115 e azul 207. Cada canal é um número inteiro entre 0 e 255, então você pode digitá-lo direto em um programa de design ou em um ajuste de imagem.
O que acontece se um valor estiver fora do intervalo?
Ele é recusado com uma mensagem clara. Um matiz negativo ou uma porcentagem acima de 100 não é ajustado para uma cor plausível, então um valor de design errado aparece em vez de passar despercebido.
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/hsl-to-rgb \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hue":210,"saturation":80,"lightness":45}'const res = await fetch("https://api.kit.forhosting.com/color/hsl-to-rgb", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hue": 210,
"saturation": 80,
"lightness": 45
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/hsl-to-rgb",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hue": 210,
"saturation": 80,
"lightness": 45
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/hsl-to-rgb", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hue":210,"saturation":80,"lightness":45}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hue":210,"saturation":80,"lightness":45}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/hsl-to-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
{
"hue": 210,
"saturation": 80,
"lightness": 45
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.hsl_to_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.
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
Como a conversão gera os canais RGB
Entradas idênticas produzem o mesmo JSON no navegador, em uma suíte de testes ou em uma integração de API.
Como usar o resultado com segurança
O cálculo no navegador é adequado para verificações rápidas; uma solicitação de API custa US$ 0,002 quando a transformação integra um pipeline reproduzível.
Perguntas técnicas
O que ocorre quando um valor está fora do intervalo?
A solicitação falha com um erro invalid_input que identifica o componente e o intervalo válido. Os valores não são ajustados nem limitados.
Quanto custa a conversão pela API?
Cada solicitação de API bem-sucedida usa o preço-base publicado de US$ 0,002. A ferramenta do navegador executa localmente o mesmo cálculo determinístico.