PHPerKaigi 2025

imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecolorexactalphaПолучает индекс цвета и альфа-компонента

Описание

imagecolorexactalpha(
    GdImage $image,
    int $red,
    int $green,
    int $blue,
    int $alpha
): int

Функция возвращает индекс цвета и альфа-компонента в палитре изображения.

Список параметров

image

Объект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета разрешается указывать либо целочисленными значениями в диапазоне от 0 до 255, либо шестнадцатеричными значениями в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Функция возвращает индекс цвета и альфа-компонента в палитре изображения или -1, если палитра не содержит такого цвета.

Список изменений

Версия Описание
8.0.0 Параметр image теперь ожидает экземпляр класса GdImage; раньше параметр ждал корректный gd-ресурс (resource).

Примеры

Пример #1 Получение цветов логотипа GD

<?php

// Создаём изображение
$im = imagecreatefrompng('./gdlogo.png');

$colors = array();
$colors[] = imagecolorexactalpha($im, 255, 0, 0, 0);
$colors[] = imagecolorexactalpha($im, 0, 0, 0, 127);
$colors[] = imagecolorexactalpha($im, 255, 255, 255, 55);
$colors[] = imagecolorexactalpha($im, 100, 255, 52, 20);

print_r($colors);

?>

Вывод приведённого примера будет похож на:

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

Смотрите также

  • imagecolorclosestalpha() - Получает ближайший индекс цвета с учётом прозрачности
Добавить

Примечания пользователей 2 notes

up
1
matt at matt-darby dot com
19 years ago
Note that a color allocated with imagecolorexactalpha won't show alpha (it will be opaque) when used with imageline(). Use imagerectangle() set to your normal start and end points instead.

Ensure that the image is created via imagecreatetruecolor() as well!
up
-1
phpdoc-comment at aditus dot nu
22 years ago
What might be misleading in the docs is that if the specified color + alpha channel does not exist it will be created. So if you like to use an alpha channel in your image enable alpha blending and then create you color using this method.
To Top