imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imagecolorallocatealphaAllocate a color for an image

Опис

int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

imagecolorallocatealpha() behaves identically to imagecolorallocate() with the addition of the transparency parameter alpha.

Параметри

image

An image resource, returned by one of the image creation functions, such as imagecreatetruecolor().

red

Значення червоного компонента.

green

Значення зеленого компонента.

blue

Значення блакитного компонента.

alpha

A value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

The red, green and blue parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF.

Значення, що повертаються

A color identifier or FALSE if the allocation failed.

Увага

Ця функція може повертати як логічне FALSE, так і нелогічне значення, яке прирівнюється до FALSE. Детальніше про це описується в розділі Логічний тип даних (Booleans). Використовуйте оператор === щоб перевірити значення, яке повертає дана функція.

Журнал Змін

Версія Опис
5.1.3 Returns FALSE if the allocation failed. Previously -1 was returned.

Приклади

Приклад #1 Example of using imagecolorallocatealpha()

<?php
$size 
300;
$image=imagecreatetruecolor($size$size);

// something to get a white background with black border
$back imagecolorallocate($image255255255);
$border imagecolorallocate($image000);
imagefilledrectangle($image00$size 1$size 1$back);
imagerectangle($image00$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;

// allocate colors with alpha values
$yellow imagecolorallocatealpha($image255255075);
$red    imagecolorallocatealpha($image2550075);
$blue   imagecolorallocatealpha($image0025575);

// drawing 3 overlapped circle
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);

// don't forget to output a correct header!
header('Content-Type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>

Наведений вище приклад виведе щось подібне до:

Output of example : Example of using imagecolorallocatealpha()

Примітки

Зауваження: Ця функція потребує GD 2.0.1 або новішої (рекомендовано версію 2.0.28 або новішу).

Прогляньте Також

add a note add a note

User Contributed Notes 3 notes

up
7
eric (at) junioronline.us
16 years ago
If you only wish to extract the alpha value for a color, you can simply extract it like so:

<?php

    $color
= imagecolorat($im, 50, 50);
   
$alpha = $color >> 24;

?>

It actually shifts off the first 24 bits (where 8x3 are used for each color), and returns the remaining 7 allocated bits (commonly used for alpha)
up
3
Brett G
6 years ago
When working with transparency, avoid imagecreate() and use imagecreatetruecolor() instead. Transparency effects may not work as expected within a palette-based image.
up
3
fjoggen at gmail dot com
14 years ago
If you need to calculate the integer representation of a color with an alpha channel, without initialising an image and using the imagecolorallocatealpha function. Then this function might be of some help:

<?php
function alphaColor($hexColor,$alpha)
{
        return
bindec(decbin($alpha).decbin(hexdec($hexColor));
}

echo
alphaColor("FFFFFF",127);
?>
To Top