(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
imagecolorclosestalpha — Получает ближайший индекс цвета с учётом прозрачности
Функция возвращает «ближайший» к заданному RGB-значению
и alpha-уровню индекс цвета в палитре изображения.
imageОбъект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().
redЗначение красного компонента цвета.
greenЗначение зелёного компонента цвета.
blueЗначение синего компонента цвета.
alpha
Значение в диапазоне от 0 до 127.
0 означает непрозрачность,
127 означает абсолютную прозрачность.
Возвращает индекс цвета в палитре изображения, ближайшего к заданному.
Пример #1 Поиск набора цветов изображения
<?php
// Создание изображения и преобразование его в палитровое
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);
// Цвета для поиска (RGB)
$colors = array(
array(254, 145, 154, 50),
array(153, 145, 188, 127),
array(153, 90, 145, 0),
array(255, 137, 92, 84)
);
// Проход по каждому цвету и поиск ближайшего к нему в палитре.
// Возврат номера по порядку, RGB искомого цвета и найденное RGB соответствие
foreach ($colors as $id => $rgb) {
$result = imagecolorclosestalpha($im, $rgb[0], $rgb[1], $rgb[2], $rgb[3]);
$result = imagecolorsforindex($im, $result);
$result = "({$result['red']}, {$result['green']}, {$result['blue']}, {$result['alpha']})";
echo "#$id: Поиск ($rgb[0], $rgb[1], $rgb[2], $rgb[3]); Ближайшее сходство: $result.\n";
}
?>Вывод приведённого примера будет похож на:
#0: Поиск (254, 145, 154, 50); Ближайшее сходство: (252, 150, 148, 0). #1: Поиск (153, 145, 188, 127); Ближайшее сходство: (148, 150, 196, 0). #2: Поиск (153, 90, 145, 0); Ближайшее сходство: (148, 90, 156, 0). #3: Поиск (255, 137, 92, 84); Ближайшее сходство: (252, 150, 92, 0).