La función imagecolorclosest() es una función incorporada en PHP que se usa para obtener el índice del color más cercano en la imagen dada. Esta función devuelve el índice del color en la paleta de la imagen que está más cerca del valor RGB especificado.
Sintaxis:
int imagecolorclosest( $image, $red, $green, $blue )
Parámetros: esta función acepta cuatro parámetros, como se mencionó anteriormente y se describe a continuación:
- $imagen: lo devuelve una de las funciones de creación de imágenes, como imagecreatetruecolor(). Se utiliza para crear el tamaño de la imagen.
- $red: este parámetro se utiliza para establecer el valor del componente de color rojo.
- $verde: este parámetro se utiliza para establecer el valor del componente de color verde.
- $azul: este parámetro se utiliza para establecer el valor del componente de color azul.
Valor de Retorno: Esta función devuelve el índice del color más cercano, en la paleta de la imagen.
Los siguientes programas ilustran la función imagecolorclosest() en PHP.
Programa 1:
<?php // Start with an image and convert it to a palette-based image $image = imagecreatefrompng( 'https://media.geeksforgeeks.org/wp-content/uploads/geeks-21.png'); imagetruecolortopalette($image, false, 255); // Search closest color $result = imagecolorclosest($image, 7, 150, 10); $result = imagecolorsforindex($image, $result); $result = "({$result['red']}, {$result['green']}, {$result['blue']})"; echo "Closest color: " . $result; imagedestroy($image); ?>
Producción:
Closest color: (4, 146, 12)
Programa 2:
<?php // Start with an image and convert it to a palette-based image $image = imagecreatefrompng( 'https://media.geeksforgeeks.org/wp-content/uploads/geeks-21.png'); imagetruecolortopalette($image, false, 255); // Search RGB colors $color = array( array(7, 150, 0), array(53, 190, 255), array(255, 165, 54) ); // Loop to find the closest color to the given RGB color foreach($color as $id => $rgb) { $result = imagecolorclosest($image, $rgb[0], $rgb[1], $rgb[2]); $result = imagecolorsforindex($image, $result); $result = "({$result['red']}, {$result['green']}, {$result['blue']})"; echo "Given color: ($rgb[0], $rgb[1], $rgb[2]) => Closest match: $result<br>"; } imagedestroy($image); ?>
Producción:
Given color: (7, 150, 0) => Closest match: (4, 142, 4) Given color: (53, 190, 255) => Closest match: (148, 174, 180) Given color: (255, 165, 54) => Closest match: (148, 162, 164)
Valor devuelto:
Referencia: http://php.net/manual/en/function.imagecolorclosest.php