Dutch PHP Conference 2023 - Call for Papers

imagecolorallocatealpha

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

imagecolorallocatealphaAloca cor para uma imagem

Descrição

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

imagecolorallocatealpha() funciona identicamente a imagecolorallocate() com a adição do parâmetro de transparencia alpha o qual deve ter um valor entre 0 e 127. 0 indica completamente opaco enquanto 127 indica completamente transparente.

Retorna false se falhar.

Exemplo #1 Exemplo de uso de 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 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);
?>

Veja também imagecolorallocate() e imagecolordeallocate().

add a note

User Contributed Notes 3 notes

up
6
eric (at) junioronline.us
17 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
7 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
15 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