Создание и установка прозрачного цвета

Задача
Необходимо сделать один из цветов изображения прозрачным. Фон, на который накладывается изображение, просвечивает через прозрачную часть последнего.

Решение
Это делается с помощью функции ImageColorTransparent():

$color = ImageColorAllocate($image, $red, $green, $blue);
ImageColorTransparent($image, $color);


Обсуждение
И формат GIF и формат PNG поддерживают прозрачность, а формат JPEG не поддерживает. Для ссылки на прозрачный цвет в библиотеке GD предназначена константа IMG_COLOR_TRANSPARENT. Например, ниже показано, как начертить пунктирную линию, состоящую из чередующихся черных и прозрачных участков:

// чертим черно-белую пунктирную линию толщиной в два пиксела
$style = array($black, $black, IMG_COLOR_TRANSPARENT,
IMG_COLOR_TRANSPARENT);
ImageSetStyle($image, $style);


Для того чтобы определить текущие установки прозрачности, возьмите значение, возвращенное функцией ImageColorTransparent(), и передайте его функции ImageColorsForIndex():

$transparent = ImageColorsForIndex($image, ImageColorTransparent($image));
print_r($transparent);
Array
(
[red] => 255
[green] => 255
[blue] => 255
)


Функция ImageColorsForIndex() возвращает массив значений красной, зеленой и синей компонент цвета. В данном случае прозрачным является белый цвет.
Теги:
фон
Добавлено: 22 Июля 2018 14:11:18 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...