Inverta cores de imagem e calcule valores RGB complementares
Obtenha a cor complementar exata de cada pixel RGB: cada canal vira 255 menos o seu valor, então o preto fica branco, o vermelho fica ciano e 12, 34, 56 vira 243, 221, 199. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
O inversor de cores de imagem recebe uma sequência de amostras de pixels RGB e calcula a cor complementar exata de cada uma. Cada canal vermelho, verde e azul é substituído por 255 menos seu valor original; assim, preto vira branco, vermelho vira ciano e todos os valores intermediários mudam de forma previsível. A ferramenta valida cada canal antes do processamento e rejeita valores fora da faixa RGB padrão de 0–255, sendo adequada para verificações rápidas, ensino, testes e pipelines de dados determinísticos.
Forneça amostras RGB em formato estruturado
Informe um ou mais pixels, cada um com os canais numéricos r, g e b. A ordem das amostras é preservada: o primeiro resultado invertido corresponde à primeira entrada, o segundo à segunda e assim por diante. Os valores podem incluir os extremos 0 e 255 e números intermediários.
Todo valor deve ser finito e permanecer dentro da faixa inclusiva de 0–255 usada nas amostras RGB padrão. Se um canal estiver ausente, não for numérico, for infinito ou ficar fora da faixa, a solicitação será interrompida com um erro de entrada, sem devolver uma lista parcialmente transformada.
Entenda o cálculo da inversão
A inversão é feita separadamente nos três canais com a mesma equação: o valor de saída é 255 menos o valor de entrada. Portanto, um pixel com vermelho 255, verde 0 e azul 0 vira vermelho 0, verde 255 e azul 255, ou seja, ciano. O preto, representado por 0, 0, 0, vira branco em 255, 255, 255.
Valores centrais permanecem próximos do meio, enquanto canais escuros ficam mais claros e canais claros ficam mais escuros. Não há conversão de perfil de cor, ajuste de gama, arredondamento, mistura nem compressão. A capacidade opera diretamente sobre as amostras numéricas fornecidas, tornando o cálculo transparente e reproduzível.
Valores fracionários válidos também são mantidos, sem conversão forçada para inteiros; por exemplo, 10.5 vira 244.5. Isso atende a pipelines que usam RGB de ponto flutuante antes da rasterização ou quantização. Como cada saída depende apenas da entrada correspondente, chamadas repetidas sempre geram exatamente o mesmo resultado.
Use o resultado em fluxos de imagem e testes
O objeto retornado contém uma lista pixels com os registros RGB invertidos na ordem original. A capacidade trabalha intencionalmente com amostras, em vez de aceitar um arquivo PNG ou JPEG codificado: decodificar e recodificar formatos pode envolver metadados, compressão, canal alfa e perfis de cor, decisões que não pertencem a uma inversão RGB simples. Manter o contrato específico facilita auditar a matemática e comparar resultados entre ambientes.
O recurso é especialmente útil para obter valores esperados canônicos em testes gráficos, demonstrar cores complementares em uma aula ou inverter cores já extraídas por outra ferramenta.
Casos de uso
Ensine cores complementares
Mostre exatamente como preto, branco, cores primárias e valores RGB intermediários mudam com a inversão de cada canal.
Prepare pixels para renderização
Transforme amostras RGB já decodificadas por canvas, analisador raster ou pipeline gráfico antes da próxima etapa.
Perguntas frequentes
Quanto custa a operação?
O mesmo cálculo determinístico também pode ser executado no navegador nesta página.
O que acontece com um canal fora de 0–255?
A solicitação falha com um erro de entrada inválida que identifica o pixel e o canal. Nenhum resultado parcial é devolvido.
Valores RGB fracionários são aceitos?
Sim. Qualquer valor numérico finito entre 0 e 255 é aceito, e seu inverso exato é devolvido sem arredondamento forçado.
A ferramenta aceita arquivos PNG ou JPEG?
Não. Ela recebe amostras de pixels RGB decodificadas. Decodificação, metadados, compressão, canal alfa e perfis de cor ficam fora deste cálculo.
A ordem dos pixels é preservada?
Sim. Cada registro de saída permanece na mesma posição da lista que seu registro de entrada correspondente.
Quantas amostras cabem em uma solicitação?
Uma solicitação pode conter de uma a 100,000 amostras RGB.
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/invert-colors \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pixels":[{"r":255,"g":128,"b":0},{"r":12,"g":34,"b":56}]}'const res = await fetch("https://api.kit.forhosting.com/image/invert-colors", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pixels": [
{
"r": 255,
"g": 128,
"b": 0
},
{
"r": 12,
"g": 34,
"b": 56
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/invert-colors",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pixels": [
{
"r": 255,
"g": 128,
"b": 0
},
{
"r": 12,
"g": 34,
"b": 56
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/invert-colors", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pixels":[{"r":255,"g":128,"b":0},{"r":12,"g":34,"b":56}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pixels":[{"r":255,"g":128,"b":0},{"r":12,"g":34,"b":56}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/invert-colors", 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": [
{
"r": 255,
"g": 128,
"b": 0
},
{
"r": 12,
"g": 34,
"b": 56
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.invert_colors",
"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_items | 100000 |
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
Forneça amostras RGB em formato estruturado
Uma solicitação aceita até 100,000 amostras, limite prático para uso no navegador e automação via API com memória e execução previsíveis.
Use o resultado em fluxos de imagem e testes
A versão do navegador executa o mesmo cálculo puro da API. Assim, você pode verificar amostras na página e usar a API por US$ 0,002 por solicitação em tarefas recorrentes, sem alterar as regras de transformação.
Casos de integração
Crie fixtures para testes gráficos
Gere amostras RGB complementares e determinísticas para testes unitários sem repetir a aritmética de inversão na preparação.