ForHosting KIT · Imagens

Quantize uma cor para o tom mais próximo da paleta

#42A5F5 comparado com #000, #369, #ffffff e #3fa7f2 é ajustado para #3fa7f2, na posição 3, com distância ao quadrado de 22. Mantenha as cores escolhidas dentro do conjunto que a sua marca, aparelho ou formato permite. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Cor
#42A5F5
Paleta
#000, #369, #ffffff, #3fa7f2
Você obtém
Cor
#42a5f5
Cor quantizada
#3fa7f2
Índice da paleta
3
Distância ao quadrado
22

Quantize uma cor em uma paleta fixa quando uma imagem indexada, um tema de terminal, um controlador LED, um conjunto de tokens de design ou um formato de exportação restrito aceitar apenas cores aprovadas. Informe uma cor hexadecimal de origem e uma paleta ordenada. O recurso valida todos os valores, compara distâncias RGB exatas e retorna a cor normalizada mais próxima, seu índice iniciado em zero e a distância ao quadrado. Em caso de empate, a primeira entrada sempre é escolhida, portanto execuções repetidas produzem a mesma saída.

Prepare uma paleta fixa com intenção

A quantização de cores começa pelas tonalidades que o destino realmente pode armazenar ou exibir. Coloque essas cores no array da paleta em uma ordem estável e deliberada, usando a notação #RGB ou #RRGGBB. As formas curtas são expandidas antes da comparação, e letras maiúsculas ou minúsculas não alteram o resultado.

A cor de origem segue a mesma notação. Uma paleta pode conter de uma a 256 entradas, o que atende a pequenos conjuntos de marca, cores de terminal, tabelas clássicas de imagens indexadas, seleções de linhas de bordado e vários mapas de cores específicos de dispositivos. A ordem só importa quando duas entradas estão à mesma distância da origem.

Nesse caso, vence a primeira. Essa regra explícita torna os empates previsíveis e permite indicar preferência sem alterar as cores. Mantenha a paleta fixa em todo o lote quando precisar de uma saída indexada consistente.

Se trabalhos diferentes reordenarem a paleta silenciosamente, o índice retornado poderá mudar mesmo que a cor escolhida continue igual. O validador rejeita arrays vazios ou grandes demais, prefixos ausentes, canais alfa, dígitos inválidos e entradas que não sejam strings, sem tentar adivinhar a intenção.

Entenda o cálculo determinístico da distância

Cada cor aceita é expandida para seis dígitos hexadecimais e convertida em valores dos canais vermelho, verde e azul entre 0 e 255. O algoritmo subtrai cada canal da paleta do canal correspondente da origem, eleva as três diferenças ao quadrado e soma os resultados. A entrada da paleta com o menor total é selecionada.

Trata-se da distância euclidiana comum no espaço RGB codificado, escolhida para uma conversão indexada transparente e reproduzível, não para representar a percepção humana. A comparação só troca o candidato quando encontra um valor estritamente menor; assim, uma distância igual nunca substitui uma opção anterior. Esse detalhe garante desempate determinístico até em paletas simétricas ou com itens duplicados.

Criar dados de imagem indexada

Associe pixels amostrados a posições em uma tabela de cores fixa antes de gravar uma representação indexada.

Aplicar cores da marca

Ajuste qualquer cor escolhida ao membro mais próximo de uma paleta aprovada do sistema de design.

Atender hardware limitado

Selecione o valor RGB compatível mais próximo para LEDs, telas, terminais ou outros dispositivos com cores restritas.

Quais formatos de cor são aceitos?

A origem e cada entrada da paleta devem usar a notação hexadecimal #RGB ou #RRGGBB. Canais alfa e valores sem prefixo são rejeitados.

Como a cor mais próxima é escolhida?

O algoritmo minimiza a soma dos quadrados das diferenças dos canais vermelho, verde e azul no espaço RGB codificado.

O que ocorre quando duas cores ficam à mesma distância?

A entrada que aparece primeiro na paleta vence, garantindo um resultado determinístico.

O índice retornado começa em zero?

Sim. A primeira entrada da paleta tem índice 0, a segunda tem índice 1 e assim por diante.

Esta é uma correspondência perceptual de cores?

Não. O cálculo usa distância euclidiana RGB direta para uma saída indexada simples, exata e reproduzível, em vez de um modelo perceptual.

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.

POSThttps://api.kit.forhosting.com/color/quantize-to-palette

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/color/quantize-to-palette \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"color":"#42a5f5","palette":["#000000","#336699","#ffffff"]}'
{
  "color": "#42a5f5",
  "palette": [
    "#000000",
    "#336699",
    "#ffffff"
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.quantize_to_palette",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_items256
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Entenda o cálculo determinístico da distância

O valor distance_squared retornado é exatamente esse número inteiro; não é necessário extrair a raiz quadrada, pois ela não altera qual distância não negativa é a menor. O cálculo é rápido, independe do ambiente e gera a mesma resposta no navegador e na API. O resultado também traz a cor de origem normalizada e o palette_index iniciado em zero, permitindo gravar diretamente um índice e preservar a cor hexadecimal selecionada em registros, prévias ou validações posteriores.

Use o resultado com segurança em um fluxo indexado

Os índices começam em zero, seguindo a convenção comum de arrays e processamento de imagens. O valor zero indica que a cor de origem já fazia parte da paleta, enquanto um valor maior revela mais deslocamento nos canais. Seu aplicativo pode definir um limite máximo adequado ao contexto e recusar conversões que se afastem demais, embora este recurso sempre retorne a entrada válida matematicamente mais próxima, sem impor um limite arbitrário de qualidade. Para várias cores, execute a mesma operação pura em cada item com a mesma paleta ordenada. Em uma consulta isolada, use quantized_color sempre que o destino esperar o valor hexadecimal escolhido. Para armazenamento indexado, use palette_index como a posição estável na paleta exata enviada com a solicitação. Preserve a paleta junto aos índices armazenados; depois que ela é reordenada ou substituída, um índice deixa de ter significado cromático independente. distance_squared é útil em controles de qualidade. Não há rede, escolha aleatória, data, estado oculto ou modelo adaptativo, portanto entradas idênticas geram o mesmo JSON.

Quanto custa uma solicitação de API?

Cada solicitação de API custa US$ 0,002. A versão para navegador executa localmente a mesma lógica determinística.

Ver a documentação completa do KIT →