(PHP 4, PHP 5, PHP 7, PHP 8)
imagecolorclosest — Получение индекса цвета ближайшего к заданному
Возвращает индекс цвета в палитре изображения, "ближайшего" к заданному RGB значению.
"Расстояние" между цветами в палитре рассчитывается геометрически, как если бы RGB значения были представлены в виде точек в трёхмерном пространстве.
Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.
image
Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().
red
Значение красного компонента цвета.
green
Значение зелёного компонента цвета.
blue
Значение синего компонента цвета.
Возвращает индекс цвета в палитре изображения, ближайшего к заданному.
Версия | Описание |
---|---|
8.0.0 |
image теперь ожидает экземпляр GdImage;
ранее ожидался корректный gd ресурс (resource).
|
Пример #1 Поиск набора цветов изображения
<?php
// Создание изображения и преобразование его в палитровое
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Цвета для поиска (RGB)
$colors = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);
// Проход по каждому цвету и поиск ближайшего к нему в палитре.
// Возврат номера по порядку, RGB искомого цвета и найденное RGB соответствие
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: Поиск ($rgb[0], $rgb[1], $rgb[2]); Ближайшее сходство: $result.\n";
}
imagedestroy($im);
?>
Результатом выполнения данного примера будет что-то подобное:
#0: Поиск (254, 145, 154); Ближайшее сходство: (252, 150, 148). #1: Поиск (153, 145, 188); Ближайшее сходство: (148, 150, 196). #2: Поиск (153, 90, 145); Ближайшее сходство: (148, 90, 156). #3: Поиск (255, 137, 92); Ближайшее сходство: (252, 150, 92).