(PHP 4, PHP 5)
imagecolorclosest — Obtener el índice del color más próximo al color especificado
Devuelve el índice del color en la paleta de la imagen que está "más próximo" al valor RGB especificado.
La "distancia" entre el color deseado y cada color en la paleta es calculado como si los valores RGB representaran puntos en un espacio tridimensional.
Si se creó una imagen desde un archivo, sólamente los colores usados en la imagen son resueltos. Los colores presentes sólamente en la paleta no son resueltos.
Un recurso image, es devuelto por una de las funciones de creación de imágenes, como imagecreatetruecolor().
Valor del componente rojo.
Valor del componente verde.
Valor del componente azul.
Devuelve el indice del color más próximo, en la paleta de la imagen, al color especificado.
Example #1 Buscar un conjunto de colores en una imagen
<?php
// Comenzar con una imagen y convertirla a una imagen basada en paleta de colores
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Buscar colores (RGB)
$colores = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);
// Itera cada búsqueda y encuentra el color más próximo en la paleta.
// Devuelve el número de búsqueda, el RGB de búsqueda y la coincidencia RGB convertida
foreach($colores as $id => $rgb)
{
$resultado = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
$resultado = imagecolorsforindex($im, $resultado);
$resultado = "({$resultado['red']}, {$resultado['green']}, {$resultado['blue']})";
echo "#$id: Búsqueda ($rgb[0], $rgb[1], $rgb[2]); Coincidencia más próxima: $resultado.\n";
}
imagedestroy($im);
?>
El resultado del ejemplo sería algo similar a:
#0: Búsqueda (254, 145, 154); Coincidencia más próxima: (252, 150, 148). #1: Búsqueda (153, 145, 188); Coincidencia más próxima: (148, 150, 196). #2: Búsqueda (153, 90, 145); Coincidencia más próxima: (148, 90, 156). #3: Búsqueda (255, 137, 92); Coincidencia más próxima: (252, 150, 92).