Php/docs/function.imagecolorallocatealpha

From Get docs

imagecolorallocatealpha

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

imagecolorallocatealphaAllocate a color for an image


Description

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

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


Parameters

image
An image resource, returned by one of the image creation functions, such as imagecreatetruecolor().
red
Value of red component.
green
Value of green component.
blue
Value of blue component.
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.

Return Values

A color identifier or FALSE if the allocation failed.

Warning This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.


Examples

Example #1 Example of using imagecolorallocatealpha()

<?php$size = 300;$image=imagecreatetruecolor($size, $size);// something to get a white background with black border$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;// allocate colors with alpha values$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);// drawing 3 overlapped circleimagefilledellipse($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 resultimagepng($image);imagedestroy($image);?>

The above example will output something similar to:


Example #2 Convert typical alpha values for use with imagecolorallocatealpha()

Usually alpha values of 0 designate fully transparent pixels, and the alpha channel has 8 bits. To convert such alpha values to be compatible with imagecolorallocatealpha(), some simple arithmetic is sufficient:


<?php$alpha8 = 0; // fully transparentvar_dump(127 - ($alpha8 >> 1));$alpha8 = 255; // fully opaquevar_dump(127 - ($alpha8 >> 1));?>

The above example will output:


int(127)
int(0)

See Also