imagecolorclosest
(PHP 4, PHP 5, PHP 7)
imagecolorclosest — Получение индекса цвета ближайшего к заданному
Описание
$image
, int $red
, int $green
, int $blue
) : intВозвращает индекс цвета в палитре изображения, "ближайшего" к заданному RGB значению.
"Расстояние" между цветами в палитре рассчитывается геометрически, как если бы RGB значения были представлены в виде точек в трехмерном пространстве.
Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.
Список параметров
-
image
-
Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().
-
red
-
Значение красного компонента цвета.
-
green
-
Значение зеленого компонента цвета.
-
blue
-
Значение синего компонента цвета.
Возвращаемые значения
Возвращает индекс цвета в палитре изображения, ближайшего к заданному.
Примеры
Пример #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).
Смотрите также
- imagecolorexact() - Получение индекса заданного цвета
- imagecolorclosestalpha() - Получение индекса цвета ближайшего к заданному с учетом прозрачности
- imagecolorclosesthwb() - Получение индекса цвета, имеющего заданный тон, белизну и затемнение