(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — Создаёт цвет для изображения
Функция imagecolorallocatealpha() работает аналогично функции
imagecolorallocate(), но ещё добавляет к цвету параметр
alpha
, который отвечает за прозрачность.
image
Объект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().
red
Значение красного компонента цвета.
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)