Conversor HSV para HSL
Leve uma cor de HSV para HSL sem adivinhar: matiz 210, saturação 70% e valor 80% ficam com luminosidade de 52% no mesmo matiz, e a saturação é recalculada para o HSL. 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
- H
- 210
- S
- 70
- Tensão (V)
- 80
- S in
- 70
- S
- 58,3333333333
- L
- 52
HSV e HSL são dois modelos de cor cilíndricos que compartilham o mesmo ângulo de matiz na roda, mas armazenam brilho e vivacidade em eixos diferentes. Motores de jogo, ferramentas de vídeo e muitos seletores nativos falam em HSV, em que o valor é o brilho máximo do canal, enquanto propriedades personalizadas CSS, sistemas de design e rampas de acessibilidade costumam preferir HSL porque a luminosidade se aproxima do preto e do branco de forma simétrica. Este conversor de HSV para HSL aceita o matiz em graus de zero a trezentos e sessenta, a saturação como porcentagem e o valor como porcentagem de zero a cem, e remapeia saturação e valor para saturação e luminosidade HSL copiando o matiz sem alteração.
Como o HSV se mapeia para HSL no mesmo matiz
O matiz é compartilhado pelos dois modelos: zero graus é vermelho puro, cento e vinte é verde puro, duzentos e quarenta é azul puro e trezentos e sessenta fecha o círculo de volta ao vermelho. Os modelos divergem na forma de armazenar vivacidade e brilho. Em HSV, o valor é o máximo dos canais RGB subjacentes em escala unitária, de modo que valor a cem por cento é a cor mais brilhante daquele matiz e saturação, e valor a zero por cento é sempre preto independentemente da saturação.
A saturação HSV estica um cinza daquele valor em direção à cor plenamente cromática no matiz escolhido. Em HSL, a luminosidade vai do preto a zero por cento passando por um tom médio puro perto de cinquenta por cento até o branco a cem por cento, e a saturação HSL estica um cinza dessa luminosidade em direção à croma plena.
Como as geometrias diferem, a saturação numérica em HSV não é o mesmo número que a saturação numérica em HSL para a maioria das cores, mesmo quando a cor percebida coincide após a conversão. O caminho de forma fechada usado aqui opera no intervalo unitário: a luminosidade é o valor vezes um menos a metade da saturação HSV, e a saturação HSL é zero no preto ou no branco; caso contrário, a diferença entre valor e luminosidade dividida pelo mínimo entre luminosidade e um menos luminosidade.
O matiz é copiado sem alteração. O matiz deve situar-se no intervalo fechado de zero a trezentos e sessenta; saturação e valor devem situar-se cada um entre zero e cem por cento inclusive.
Onde a conversão HSV para HSL aparece no trabalho real
Temas nativos móveis, seletores de materiais Unity e Unreal e muitas bibliotecas gráficas expõem controles de brilho baseados em valor; no entanto, sistemas de design costumam documentar rampas de marca em HSL para que as equipes de produto possam escalar a luminosidade com contraste acessível mantendo estáveis o matiz e uma faixa de saturação perceptual. Ferramentas de visualização de dados e arte generativa que armazenam amostras de artista como HSV precisam de um caminho confiável ao exportar tokens como propriedades personalizadas HSL para a web.
Pipelines de vídeo e broadcast que documentam cores em HSV para correção de câmera ainda precisam de HSL ao alimentar CSS e documentação de design. Currículos e bootcamps ensinam modelos cilíndricos lado a lado e precisam de um oráculo confiável único para chaves de exercícios que coincidam com as identidades dos manuais. Fluxos de acessibilidade que recebem HSV de um editor de imagem e depois ajustam a luminosidade percebida em HSL ainda precisam de mapeamento exato de canais sem APIs exclusivas do navegador.
Se mais tarde precisar do caminho inverso HSL para HSV, HSV para RGB, conversão multi-formato HEX LAB CMYK ou verificações de contraste WCAG, trate-os como intenções de busca e landings separados em vez de sobrecarregar esta página dedicada ao conversor HSV para HSL.
Casos de uso
Amostras de motor em tokens HSL no CSS
Converta tripletos HSV de artistas de motores de jogo e seletores nativos em HSL para sistemas de design, propriedades personalizadas CSS e tabelas de documentação.
Temas móveis e entrega de design
Mapeie cores de marca baseadas em valor de editores de temas móveis para rampas HSL que as equipes de produto possam clarear para contraste acessível.
Perguntas frequentes
Quais intervalos o matiz, a saturação e o valor aceitam?
O matiz h deve estar entre 0 e 360 graus inclusive. A saturação s e o valor v são porcentagens de 0 a 100.
O matiz muda ao converter de HSV para HSL?
Não. O matiz é compartilhado pelos dois modelos e é copiado sem alteração. Apenas a saturação e o eixo valor-luminosidade são recalculados.
A saturação HSV é o mesmo número que a saturação HSL?
Não. Os modelos definem a saturação de formas diferentes. Este conversor aplica a identidade de forma fechada para que a cor resultante coincida, embora os valores numéricos de S em geral difiram.
O que acontece no preto ou no branco pleno?
Quando o valor é zero, a luminosidade é zero e a saturação HSL é zero (preto). Perto dos extremos de luminosidade de branco ou preto puros, a saturação HSL colapsa para zero pela fórmula do intervalo unitário.
Quanto custa o conversor HSV para HSL?
A ferramenta do navegador é gratuita e roda localmente.
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/hsv-hsl \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"h":210,"s":70,"v":80}'const res = await fetch("https://api.kit.forhosting.com/color/hsv-hsl", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"h": 210,
"s": 70,
"v": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/hsv-hsl",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"h": 210,
"s": 70,
"v": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/hsv-hsl", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"h":210,"s":70,"v":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"h":210,"s":70,"v":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/hsv-hsl", 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
{
"h": 210,
"s": 70,
"v": 80
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.hsv_hsl",
"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
Canais fora dos intervalos legais falham com um erro claro invalid_input, de modo que tokens incorretos nunca se enrolam nem se limitam em silêncio.
Como o HSV se mapeia para HSL no mesmo matiz
O pipeline é aritmética de ponto flutuante pura, sem sementes aleatórias, sem carimbos de relógio e sem chamadas de rede, de modo que entradas idênticas sempre produzem o mesmo JSON.
O que você envia e o que recebe de volta
Envie três números finitos: o matiz h em graus de zero a trezentos e sessenta, a saturação HSV s como porcentagem de zero a cem e o valor v como porcentagem na mesma faixa. Verificações clássicas incluem o vermelho médio puro em HSV com matiz zero, saturação cem e valor cem mapeando para luminosidade HSL cinquenta com saturação plena; preto como valor zero colapsando para preto acromático com luminosidade zero; e cinzas com saturação zero mapeando para saturação HSL zero com luminosidade igual à metade do valor de origem. Use o formulário gratuito do navegador para exploração de paletas e revisões de design e, em seguida, chame o contrato idêntico a partir de scripts quando precisar de conversão em massa de materiais de motor ou tokens de temas móveis para HSL em CSS. Cada campo pode chegar como número JSON ou como string numérica; os aliases hue, saturation, value e brightness são aceitos por conveniência. Campos ausentes, strings não numéricas, NaN, Infinity e canais fora da faixa falham com invalid_input e não são cobrados. No sucesso, a resposta ecoa h limpo, a saturação de origem como s_in, o valor de entrada v, a saturação HSL de saída s e a luminosidade l, objetos aninhados hsv e hsl com os tripletos completos, e uma nota breve de fórmula que reafirma a identidade do intervalo unitário. O preço das chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Onde a conversão HSV para HSL aparece no trabalho real
Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Casos de integração
Fixtures em massa e chaves de currículo
Programe conversão determinística de HSV para HSL para fixtures de regressão, oráculos de exercícios e exportações de paleta a US$ 0,002 por item.