Php/docs/function.imagecolorallocatealpha
imagecolorallocatealpha
(PHP 4 >= 4.3.2, PHP 5, PHP 7)
imagecolorallocatealpha — Allocate 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
and127
.0
indicates completely opaque while127
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
- imagecolorallocate() - Allocate a color for an image
- imagecolordeallocate() - De-allocate a color for an image