Cor para cinza
Obtenha o cinza que preserva o brilho percebido de uma cor: #3498db vira #828282, valor de cinza 130, porque o verde pesa mais, o vermelho menos e o azul o mínimo. Você também vê cada etapa da conta. 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
- Cor de origem em hex
- #3498db
- Valor
- 130
- Hex de entrada
- #3498db
- Rgb de entrada
- 52, 152, 219
- Resistência (Ω)
- 52
Um conversor de cor para escala de cinza recebe uma cor opaca—em código hex ou nos canais vermelho, verde e azul—e a mapeia para um cinza neutro que preserva o brilho percebido em vez de médias ingênuas dos canais. Cole #e74c3c, rgb(52, 152, 219) ou inteiros r, g e b separados; a ferramenta aplica os pesos clássicos de luminosidade 0.299 vermelho, 0.587 verde e 0.114 azul, arredonda para um inteiro de cinza de 0 a 255 e devolve o triple hex cinza, o valor numérico, uma string CSS rgb() e a aritmética passo a passo.
Por que a ponderação de luminosidade supera a média simples
A visão humana não é igualmente sensível à luz vermelha, verde e azul. O verde contribui mais para o brilho percebido, o vermelho menos e o azul o menos de todos. Por isso um azul puro #0000ff parece mais escuro que um verde puro #00ff00 embora ambos tenham um único canal no máximo 255.
Uma média ingênua que soma os três canais e divide por três subestima o brilho de cores ricas em verde e superestima tons ricos em azul. A ponderação de luminosidade corrige esse desequilíbrio com coeficientes fixos do modelo clássico de luma televisiva muitas vezes chamado BT.601: o cinza Y é 0.299 vezes vermelho mais 0.587 vezes verde mais 0.114 vezes azul, arredondado ao inteiro mais próximo em 0–255.
O resultado é um único canal que, escrito como #YY onde cada par é o mesmo byte hex, fica no eixo neutro do espaço RGB mantendo o brilho aproximado do matiz original. Esta página é de propósito uma ferramenta de uma cor só, não um filtro de imagem: você converte um token de design, uma variável CSS ou uma amostra de paleta por vez e recebe um hex cinza e um valor auditáveis.
Exercícios de sala e entrevistas de código costumam pedir essa transformação à mão; uma referência determinística remove a ambiguidade sobre quais pesos foram usados, como se arredonda e se o hex de três dígitos foi expandido antes da multiplicação.
Dicas práticas, limites e buscas relacionadas
Não envie formas com alfa como #RRGGBBAA ou rgba com alfa significativo a preservar—esta página converte só RGB opaco, e comprimentos inesperados são rejeitados para você perceber em vez de descartar o alfa em silêncio. Cores CSS nomeadas como rebeccapurple estão fora do escopo; resolva-as primeiro para hex com uma tabela de nomes e então chame este conversor.
Ao escrever testes unitários, cubra ao menos um vermelho vivo, um teal dominante em verde, um azul puro, uma entrada já cinza que deva voltar a si mesma, um atalho de três dígitos, uma string rgb() e um hex inválido deliberado para que regressões de validação não passem.
Esta página atende quem busca um conversor cor para cinza, calculadora de luminosidade hex para cinza ou ferramenta RGB para valor cinza gratuita online; não é um dessaturador de imagem completo, nem conversor multi-espaço para HSL LAB ou CMYK, nem gerador de paletas. Prefira esta capacidade quando já tiver uma cor e só precisar do hex cinza de luminosidade e do valor inteiro; se o pipeline ainda precisar emitir HSL ou CMYK de impressão, use um conversor multi-formato para esses espaços e esta ferramenta para o passo monocromático.
Casos de uso
Tokens de design monocromáticos a partir do hex da marca
Designers colam códigos hex da marca e recebem hex cinza ponderados por luminosidade para temas monocromáticos, mockups de impressão e UI desabilitada sem abrir um editor de imagem.
Preparação de variáveis CSS e preenchimento de canvas
Converta cores do usuário de um seletor em strings rgb() e hex neutras para prévias em tons de cinza, camadas de marca d'água ou variáveis CSS adequadas à impressão.
Perguntas frequentes
Qual fórmula o conversor de cor para cinza usa?
O hex cinza repete esse byte três vezes como #YY.
Quais formatos de cor são aceitos?
Hex #RGB ou #RRGGBB (# opcional), CSS rgb(r,g,b), listas r,g,b soltas ou campos inteiros r, g e b de 0–255. Alfa e cores CSS nomeadas não são aceitos.
O conversor de cor para cinza é gratuito?
A ferramenta no navegador é gratuita e roda localmente.
Em que cinza #3498db se transforma?
Vira #828282. A soma ponderada é 0,299 × 52 + 0,587 × 152 + 0,114 × 219 = 129,738, arredondada para o valor de cinza 130, ou seja, rgb(130, 130, 130).
Por que não fazer a média simples de vermelho, verde e azul?
Porque o olho não enxerga os três com o mesmo brilho. O verde contribui mais para o brilho e o azul menos, então a média simples escurece cores esverdeadas e clareia as azuladas; por isso #0000ff parece mais escuro que #00ff00.
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/grayscale \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#3498db","hex":"valor-ejemplo"}'const res = await fetch("https://api.kit.forhosting.com/color/grayscale", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#3498db",
"hex": "valor-ejemplo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/grayscale",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#3498db",
"hex": "valor-ejemplo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/grayscale", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#3498db","hex":"valor-ejemplo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#3498db","hex":"valor-ejemplo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/grayscale", 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
{
"color": "#3498db",
"hex": "valor-ejemplo"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.grayscale",
"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
max_channel | 255 |
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
Cores inválidas—entrada vazia, comprimento hex errado, caracteres não hex, canais fora de 0–255 ou conjunto de campos incompleto—falham com o erro claro invalid_input em vez de inventar uma amostra. O caminho é parse e aritmética determinísticos—sem rede, sem sementes aleatórias, sem relógio—assim o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON a cada chamada.
Como chamar a API e o que volta
Espaços ao redor são removidos, letras hex podem ser maiúsculas ou minúsculas e o hash é opcional. Envie um corpo JSON com uma string de cor ou três campos de canal separados. O campo color aceita alias hex, value, text, input e code; exemplos válidos incluem #3498db, 3498db, #abc, rgb(52, 152, 219) e a lista solta 52, 152, 219. Como alternativa forneça r, g e b (alias red, green, blue) como inteiros de 0 a 255. Em sucesso a resposta devolve input_hex e input_rgb da fonte resolvida, gray inteiro e alias gray_value e value, gray_hex e hex como código neutro de seis dígitos, gray_rgb como array de três elementos, css como rgb(g, g, g), formula e weights documentando os coeficientes, luminosity como soma ponderada pré-arredondamento com precisão de exibição fixa, message como resumo curto e steps como array ordenado de linhas de substituição para ensino ou depuração. Validação falha—cor e canais ausentes, string vazia, comprimento hex errado, caracteres não hex, prefixo de programação 0x, canais fora da faixa ou canais fracionários não inteiros—retorna invalid_input e não é cobrada. O preço é um fixo US$ 0,002 por requisição bem-sucedida com unidade item e preço unitário marginal zero.
Dicas práticas, limites e buscas relacionadas
Prefira enviar o token exato que a ferramenta de design exportou, incluindo o hash se o tiver; hex com e sem hash funcionam, e a resposta sempre normaliza a fonte para um input_hex de seis dígitos em minúsculas para diffs posteriores estáveis. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém baratos scripts exploratórios e validação de formulários enquanto se colam valores imperfeitos da área de transferência.
Casos de integração
Testes unitários de helpers de dessaturação
Gere valores cinza de referência a partir de fixtures hex e RGB para que motores de tema e checagens de contraste de acessibilidade afirmem matemática de luminosidade estável.
Perguntas técnicas
O que é devolvido em caso de sucesso?
O valor inteiro gray (também gray_value e value), gray_hex / hex, gray_rgb, uma string css rgb(), a origem input_hex e input_rgb, formula, weights, luminosity, message e steps.
O que acontece com um valor de cor inválido?
A API devolve invalid_input com uma mensagem descrevendo o problema (entrada vazia, hex inválido, canais fora da faixa, etc.). Validação falha não é cobrada.