(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — Создаёт цвет для изображения
$image,$red,$green,$blue,$alpha
Функция imagecolorallocatealpha() работает аналогично функции
imagecolorallocate(), но ещё добавляет к цвету параметр
alpha, который отвечает за прозрачность.
imageredЗначение красного компонента цвета.
greenЗначение зелёного компонента цвета.
blueЗначение синего компонента цвета.
alpha
Значение в диапазоне от 0 до 127.
0 означает непрозрачный цвет,
127 означает полную прозрачность.
red, green
и blue принимают либо целочисленные значения в диапазоне от 0 до 255,
либо шестнадцатеричные значения в диапазоне от 0x00 до 0xFF.
Функция возвращает идентификатор цвета или false, если при создании цвета возникла ошибка.
Функция
возвращает как логическое значение false,
так и нелогическое значение, которое приводится к false.
Прочитайте раздел
«Логический тип»,
чтобы получить дополнительную информацию.
Используйте оператор ===
для проверки значения, которое возвращает функция.
| Версия | Описание |
|---|---|
| 8.0.0 |
Параметр image теперь принимает объект GdImage;
раньше параметр принимал корректный gd-ресурс (resource).
|
Пример #1 Пример использования imagecolorallocatealpha()
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);
// Создаём белый фон с чёрной рамкой
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);
$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;
// Создаём цвета с альфа-компонентом
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// Рисуем 3 пересекающиеся окружности
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);
// Помним о выводе правильного заголовка!
header('Content-Type: image/png');
// И наконец — вывод
imagepng($image);
?>Вывод приведённого примера будет похож на:
Пример #2 Преобразование типичных альфа-значений для использования с imagecolorallocatealpha()
Обычно альфа-значения 0 обозначают полностью прозрачные пиксели,
а альфа-канал имеет 8 битов. Чтобы преобразовать такие альфа-значения для совместимости
с imagecolorallocatealpha(), достаточно немного простой
арифметики:
<?php
$alpha8 = 0; // На 100 % прозрачный
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // Непрозрачный
var_dump(127 - ($alpha8 >> 1));
?>Результат выполнения приведённого примера:
int(127) int(0)