Extrair canal de cor
Obtenha um único número de uma cor em vez de uma conversão completa: o vermelho de #3498db é 52 e a transparência de #3498db80 é 128, ambos na mesma escala de 0 a 255. 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
- #3498db
- Canal
- Red
- Valor
- 52
- Red
- 52
- Verde
- 152
- Azul
- 219
Sistemas de design, preenchimentos de canvas, uniforms de shader e checagens de contraste de acessibilidade muitas vezes precisam de um único número de uma cor, não de uma tabela de conversão completa. Você já tem um token hex como #3498db ou um de oito dígitos #3498db80, ou uma string CSS rgb() ou rgba(), e precisa do canal vermelho, verde, azul ou alfa como inteiro na escala 0–255. Esta capacidade extrai o canal nomeado: valida a string de cor e o nome do canal e devolve esse número de forma determinística. Ferramentas irmãs que convertem hex em um tripleto RGB completo ainda deixam você escolher um campo; esta página é o extrator dedicado para pipelines que pedem uma única faixa.
O que é um canal de cor e como o número é obtido
Uma cor digital na tela é quase sempre quatro canais de oito bits empacotados: vermelho, verde, azul e uma faixa opcional alfa (opacidade). Na forma hex de seis dígitos #RRGGBB o primeiro par é vermelho, o do meio verde e o último azul; cada par é lido como inteiro na base dezesseis de 00 (zero) a FF (duzentos e cinquenta e cinco).
As formas de quatro e oito dígitos #RGBA e #RRGGBBAA acrescentam um par alfa nessa mesma escala 0–255, por isso um token como #3498db80 não é a mesma cor que #3498db: o par extra é transparência, não um quarto matiz. CSS rgb() escreve esses três inteiros em decimal; rgba() adiciona uma unidade alfa no intervalo unitário de zero a um, e este solver multiplica essa unidade por 255 e arredonda para o inteiro mais próximo para que todos os canais extraídos compartilhem uma escala.
A abreviação hex de três e quatro dígitos duplica cada nibble: #f00c vira #ff0000cc antes de qualquer canal ser lido. Extrair um canal nomeado é então uma consulta depois dessa análise: o inteiro vermelho, verde, azul ou alfa, não uma conversão para HSL, LAB ou CMYK. O algoritmo é aritmética pura e validação de strings.
Onde extrair um único canal vale o esforço
Testes de front-end que afirmam o canal vermelho de um token de marca, carregadores de shader que ligam um único uniform e auditorias de planilha que comparam só o alfa de uma sobreposição querem um número, não um conversor de três campos para desempacotar. Pipelines de jogo e impressão que autoram #RRGGBBAA precisam falhar alto quando alguém digita hue ou saturation no campo channel em vez de devolver NaN em silêncio.
Prefira esta capacidade quando a intenção de busca for extrair canal de cor — obter vermelho, verde, azul ou alfa como número. Não é uma landing de hex para RGB, nem um extrator de paleta a partir de fotos, nem um misturador, nem uma tabela de cores CSS nomeadas. Mantenha as requisições pequenas, fixe value e a cor normalizada nos testes, e você terá um inteiro reproduzível para tickets, plugins LMS e workers de borda sem levantar uma biblioteca própria de gestão de cor.
Casos de uso
Uniforms de shader e de canvas
Ligue um único canal 0–255 de um token hex ou rgba() a um uniform WebGL, um auxiliar de preenchimento Canvas ou um pipeline de propriedades personalizadas CSS.
Auditorias de alfa em sobreposições
Leia o alfa escrito de sobreposições #RRGGBBAA ou rgba() e rejeite tokens que perderam a transparência em silêncio ou usaram um nome de canal desconhecido.
Perguntas frequentes
Quais canais você pode extrair de uma cor?
Exatamente quatro canais nomeados: red, green, blue e alpha. Cada um volta como inteiro de 0 a 255 no campo value.
Quais formatos de cor a extração de canal aceita?
Hex #RGB, #RGBA, #RRGGBB e #RRGGBBAA com ou sem # inicial, mais CSS rgb(r, g, b) e rgba(r, g, b, a). Cores CSS nomeadas e prefixos 0x não são aceitos.
Como o alfa é convertido de rgba() versus hex de oito dígitos?
O alfa hex já está em 0–255 (por exemplo #80 é 128). O alfa de rgba() é uma unidade de 0 a 1 e é convertido com round(alpha × 255), então 0.5 vira 128 na mesma escala.
O que acontece se você pedir alfa em uma cor que não tem alfa?
Esse padrão está documentado para você distinguir uma faixa omitida de um #ff ou 1.0 escritos.
Quanto custa extrair um canal de cor?
A ferramenta do navegador é gratuita. Cor ou canal inválidos não são cobrados.
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/channel-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#3498db","channel":"red"}'const res = await fetch("https://api.kit.forhosting.com/color/channel-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#3498db",
"channel": "red"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/channel-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#3498db",
"channel": "red"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/channel-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#3498db","channel":"red"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#3498db","channel":"red"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/channel-extract", 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",
"channel": "red"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.channel_extract",
"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_color_chars | 64 |
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 e nomes de canal desconhecidos falham com invalid_input e não são cobrados.
O que é um canal de cor e como o número é obtido
Quando uma cor omite o alfa, o extrator trata a faixa ausente como totalmente opaca 255 em vez de inventar um buraco, e marca had_alpha como false para que quem chama distinga um padrão de uma transparência escrita.
Contrato de entrada, formatos aceitos e forma da resposta
Os componentes RGB em notação funcional vão de 0–255; o alfa de rgba() é 0–1 inclusive e é convertido com round(alpha × 255). A string color pode ter no máximo 64 caracteres após o recorte. Envie um corpo JSON com dois campos obrigatórios. color é uma string: hex com três, quatro, seis ou oito dígitos e um hash inicial opcional, ou uma lista CSS rgb(r, g, b) / rgba(r, g, b, a). Os aliases hex, value, text, input e colour são aceitos para o campo color. channel deve ser um dos nomes fechados red, green, blue ou alpha (o solver aceita as formas curtas r, g, b e a; o enum publicado são as quatro palavras completas para que o formulário web seja um select, não uma armadilha de texto livre). Em caso de sucesso o corpo devolve value, o inteiro extraído; channel, o nome canônico; color, um hex minúsculo normalizado (#rrggbb quando o alfa foi omitido, #rrggbbaa quando foi escrito); os quatro inteiros red, green, blue e alpha; scale 255; source descrevendo a forma analisada (hex3, hex4, hex6, hex8, rgb ou rgba); had_alpha; e uma mensagem breve. Exemplo: color #3498db e channel red produz value 52 porque parseInt de 34 na base dezesseis é 52. Exemplo: color #3498db80 e channel alpha produz value 128. Validação falha — campo ausente, string vazia, prefixo 0x, comprimento hex errado, caracteres não hex, rgb() com aridade errada, alfa de rgba() fora de 0–1, ou um canal desconhecido como hue — devolve invalid_input nomeando o campo e nunca é cobrada.
Onde extrair um único canal vale o esforço
Como a implementação é parse puro de nível A, cada chamada bem-sucedida custa o preço-base publicado US$ 0,002 sem tokens de modelo e sem rede de saída, e a validação falha não consome saldo.
Casos de integração
Fixtures de tokens de design e de tema
Confirme que um hex de marca ainda tem o inteiro esperado de vermelho, verde, azul ou alfa depois de uma mudança de folha de estilo, sem desempacotar um conversor RGB completo em cada teste.