(PHP 4, PHP 5, PHP 7, PHP 8)
imagecolorclosest — Obtém o índice da cor mais próxima à especificada
Retorna o índice da cor na paleta da imagem que for a mais "próxima" ao valor RGB especificado.
A "distância" entre a cor desejada em relação a cada cor da paleta é calculada como se os valores RGB representassem pontos no espaço tridimensional.
Se a imagem foi criada a partir de um arquivo, apenas as cores usadas na imagem são resolvidas. As cores presentes apenas na paleta não serão resolvidas.
image
Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().
red
Valor do componente vermelho.
green
Valor do componente verde.
blue
Valor do componente azul.
Retorna o índice na paleta da imagem da cor mais próxima à especificada.
Versão | Descrição |
---|---|
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resourcegd válido era esperado. |
Exemplo #1 Procura por um conjunto de cores em uma imagem
<?php
// Inicia com uma imagem e converte-a para uma baseada em paleta
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Cores que serão procuradas (RGB)
$colors = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);
// Faz uma repeticação para cada procura e encontra a cor mais próxima na paleta.
// Retorna o número da procura, a cor RGB sendo procurada e a cor correspondente encontrada, convertida para RGB
foreach($colors as $id => $rgb)
{
$result = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
$result = imagecolorsforindex($im, $result);
$result = "({$result['red']}, {$result['green']}, {$result['blue']})";
echo "#$id: Cor procurada: ($rgb[0], $rgb[1], $rgb[2]); Cor mais próxima: $result.\n";
}
imagedestroy($im);
?>
O exemplo acima produzirá algo semelhante a:
#0: Cor procurada: (254, 145, 154); Cor mais próxima: (252, 150, 148). #1: Cor procurada: (153, 145, 188); Cor mais próxima: (148, 150, 196). #2: Cor procurada: (153, 90, 145); Cor mais próxima: (148, 90, 156). #3: Cor procurada: (255, 137, 92); Cor mais próxima: (252, 150, 92).