(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).