Substituir uma cor específica na imagem
Troque vermelho por verde em uma lista de pixels da imagem. Com tolerância de 32, mudam o vermelho puro e os dois quase vermelhos, então 3 de 5 pixels são substituídos. Cada canal é comparado separadamente, o que pega também a sombra das bordas. 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
- Pixels
- #FF0000, #FF2020, #00FF00, #0000FF, #FE0101
- Alvo
- #FF0000
- Tolerância
- 32
- Substituição
- #00FF00
- Pixels
- #00FF00, #00FF00, #00FF00, #0000FF, #00FF00
- Quantidade substituída
- 3
- Total de itens
- 5
Um pixel conta como correspondência quando seus canais vermelho, verde e azul diferem do alvo em no máximo a tolerância definida: com zero, apenas correspondências exatas são substituídas, e um valor maior alcança os sombreamentos e o antisserrilhado das bordas. É a versão determinística e offline de um repintar com varinha mágica: sem decodificação de imagem, sem IA, apenas uma regra limpa de distância por canal que você pode reproduzir em qualquer lugar.
O que significa substituir uma cor com tolerância
Imagens reais quase nunca contêm uma única cor plana. Um logotipo vermelho vem cercado por um halo de pixels rosados de antisserrilhado, e a fotografia de um carro vermelho guarda dezenas de vermelhos sob luz variável. Se você trocasse apenas o valor hexadecimal exato, o resultado ficaria irregular e amador.
A tolerância resolve isso definindo uma vizinhança em torno do alvo: esta ferramenta mede, para cada pixel, a maior diferença absoluta entre os canais vermelho, verde e azul, e substitui o pixel quando essa distância é menor ou igual à sua tolerância. Uma tolerância 0 é igualdade estrita, útil para ícones, sprites e gráficos planos de interface. Valores entre 16 e 48 são a faixa habitual para gradientes e fotos.
Como escolher o alvo, a tolerância e a substituição
Comece amostrando a cor que você quer remover. O alvo aceita um valor hexadecimal padrão #RRGGBB; se não tiver certeza do valor exato, uma ferramenta de cor dominante ou de paleta mostra do que a imagem realmente é feita. Depois ajuste a tolerância subindo a partir de zero: execute com 0, veja quantos pixels foram substituídos e aumente até cobrir o halo em volta do assunto sem invadir os elementos vizinhos.
A substituição também é uma cor hexadecimal, gravada literalmente em cada pixel correspondente: não há mistura, então a troca fica nítida. Uma proteção que vale conhecer: a tolerância deve ser zero ou um inteiro positivo até 255.
Onde ela se encaixa em um fluxo de trabalho real
A entrada e a saída são listas de cores de pixels, não arquivos de imagem codificados, o que torna esta capacidade um bloco de construção, e não um editor de fotos completo. Quem a usa normalmente extrai os pixels de um recurso pequeno — um favicon, uma série de gráfico, um sprite de jogo, um marcador estilo QR —, repinta aqui e remonta a imagem do seu lado. Equipes de marketing a usam para gerar variantes de cor de um único render mestre.
Pipelines de gráficos a usam para trocar a cor de uma série sem renderizar de novo. Ferramentas de acessibilidade a usam para mapear cores problemáticas em cores conformes.
Casos de uso
Repintar variantes de produto
Troque a cor principal de um render de produto para gerar todas as combinações a partir de um único recurso mestre, com a tolerância cobrindo o sombreamento das bordas.
Atualizar o tema de um gráfico ou sprite
Leve uma cor da paleta antiga para a nova cor da marca em cada pixel de um gráfico pequeno sem abrir um editor.
Corrigir uma cor por acessibilidade
Substitua uma cor de marca não conforme pelo seu equivalente acessível em ícones e gráficos de interface antes de publicar.
Perguntas frequentes
Quanto custa?
Também é grátis executar no seu navegador nesta página.
Como uma correspondência é decidida?
Um pixel corresponde quando a maior diferença por canal (vermelho, verde ou azul) em relação à cor alvo é menor ou igual à tolerância. Com tolerância 0, apenas correspondências exatas são substituídas.
O que acontece se a tolerância for negativa?
Tolerância negativa não faz sentido e geralmente indica um bug no código chamador.
Ela aceita um arquivo de imagem?
Não. Ela opera sobre as cores dos pixels da imagem, dadas como uma lista de cores hexadecimais #RRGGBB, e devolve a lista já repintada. Você decodifica e remonta a imagem do seu lado.
Qual tolerância devo usar?
Use 0 para ícones, sprites e gráficos chapados, e entre 16 e 48 para degradês e fotos. Comece em zero, veja quantos pixels mudaram e aumente até cobrir o halo sem invadir as cores vizinhas.
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/image/color-replace \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pixels":["#FF0000","#FF2020","#00FF00","#0000FF"],"target":"#FF0000","replacement":"#00FF00"}'const res = await fetch("https://api.kit.forhosting.com/image/color-replace", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pixels": [
"#FF0000",
"#FF2020",
"#00FF00",
"#0000FF"
],
"target": "#FF0000",
"replacement": "#00FF00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/color-replace",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pixels": [
"#FF0000",
"#FF2020",
"#00FF00",
"#0000FF"
],
"target": "#FF0000",
"replacement": "#00FF00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/color-replace", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pixels":["#FF0000","#FF2020","#00FF00","#0000FF"],"target":"#FF0000","replacement":"#00FF00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pixels":["#FF0000","#FF2020","#00FF00","#0000FF"],"target":"#FF0000","replacement":"#00FF00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/color-replace", 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
{
"pixels": [
"#FF0000",
"#FF2020",
"#00FF00",
"#0000FF"
],
"target": "#FF0000",
"replacement": "#00FF00"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.color_replace",
"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_pixels | 262144 |
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
A API de substituição de cor recebe as cores dos pixels de uma imagem, uma cor alvo, uma tolerância e uma cor de substituição, e devolve a lista de pixels com cada pixel correspondente já trocado.
O que significa substituir uma cor com tolerância
Como a regra é uma simples comparação numérica, a mesma entrada sempre produz a mesma saída: você testa no navegador e depois automatiza a mesma chamada pela API com resultados idênticos, exatamente o que se quer quando o repintar alimenta um pipeline de build ou um gerador de variantes.
Como escolher o alvo, a tolerância e a substituição
Uma tolerância negativa é rejeitada com um erro invalid_input em vez de ser truncada em silêncio, porque um raio negativo não faz sentido e geralmente indica um bug no código chamador, que você prefere ver imediatamente em vez de depurar depois uma imagem sutilmente errada.
Onde ela se encaixa em um fluxo de trabalho real
Toda a operação é barata o bastante para rodar grátis no seu navegador nesta página, e custa US$ 0,002 por solicitação pela API quando você a automatiza. Nenhum arquivo é enviado ou armazenado, o cálculo é totalmente determinístico e o limite de 262144 pixels por chamada cobre sprites e ícones com folga.
Perguntas técnicas
O resultado é determinístico?
Sim. A regra é uma simples comparação de distância por canal, sem aleatoriedade, então a mesma entrada sempre produz a mesma saída no navegador e pela API.
Há um limite de tamanho?
Até 262144 pixels por chamada, o que cobre com folga ícones, sprites e recursos pequenos.