(PHP 4 >= 4.0.6, PHP 5, PHP 7)
imagecolorclosestalpha — Получение индекса цвета ближайшего к заданному с учетом прозрачности
$image
, int $red
, int $green
, int $blue
, int $alpha
)
Возвращает индекс цвета в палитре изображения, "ближайшего" к заданному
RGB значению, а также alpha
уровню.
image
Ресурс изображения, полученный одной из функций создания изображений, например, такой как 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: Search ($rgb[0], $rgb[1], $rgb[2], $rgb[3]); Closest match: $result.\n";
}
imagedestroy($im);
?>
Результатом выполнения данного примера будет что-то подобное:
#0: Search (254, 145, 154, 50); Closest match: (252, 150, 148, 0). #1: Search (153, 145, 188, 127); Closest match: (148, 150, 196, 0). #2: Search (153, 90, 145, 0); Closest match: (148, 90, 156, 0). #3: Search (255, 137, 92, 84); Closest match: (252, 150, 92, 0).