PHP.nl

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