imagecolorclosest
(PHP 4, PHP 5, PHP 7)
imagecolorclosest — Obtener el índice del color más próximo al color especificado
Descripción
$image
, int $red
, int $green
, int $blue
)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 ha creado la imagen a partir de un fichero, sólo se resolverán los colores utilizados en la imagen. No se resolverán los colores que sólo están presentes en la paleta.
Parámetros
-
image -
Un recurso image, es devuelto por una de las funciones de creación de imágenes, como imagecreatetruecolor().
-
red -
Valor del componente rojo.
-
green -
Valor del componente verde.
-
blue -
Valor del componente azul.
Valores devueltos
Devuelve el indice del color más próximo, en la paleta de la imagen, al color especificado.
Ejemplos
Ejemplo #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).
Ver también
- imagecolorexact() - Obtener el índice del color especificado
- imagecolorclosestalpha() - Obtener el índice del color más próximo al color + alpha especificado
- imagecolorclosesthwb() - Obtener el índice del color que tiene el tono, blancura y negrura