imagecolorclosest
imagecolorclosest
Get the index of the closest color to the specified color
int **imagecolorclosest** GdImage $image int $red int $green int $blue
Returns the index of the color in the palette of the image which is "closest" to the specified value.
The "distance" between the desired color and each color in the palette is calculated as if the values represented points in three-dimensional space.
gd.image.colors
The colors parameters are integers between 0 and 255 or hexadecimals
between 0x00 and 0xFF.
redgd.value.red
greengd.value.green
bluegd.value.blue
Returns the index of the closest color, in the palette of the image, to the specified one
Voorbeeld: Search for a set of colors in an image
<?php
// Start with an image and convert it to a palette-based image
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Search colors (RGB)
$colors = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);
// Loop through each search and find the closest color in the palette.
// Return the search number, the search RGB and the converted RGB match
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: Search ($rgb[0], $rgb[1], $rgb[2]); Closest match: $result.\n";
}
?>
#0: Search (254, 145, 154); Closest match: (252, 150, 148).
#1: Search (153, 145, 188); Closest match: (148, 150, 196).
#2: Search (153, 90, 145); Closest match: (148, 90, 156).
#3: Search (255, 137, 92); Closest match: (252, 150, 92).
imagecolorexact``imagecolorclosestalpha``imagecolorclosesthwb