(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — Aloca uma cor para uma imagem
imagecolorallocatealpha() se comporta de forma idêntica a
imagecolorallocate() com a adição do parâmetro de
transparência alpha.
imageUm objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().
redValor do componente vermelho.
greenValor do componente verde.
blueValor do componente azul.
alpha
Um valor entre 0 e 127.
0 indica completamente opaco enquanto que
127 indica completamente transparente.
red, green
e blue são inteiros
entre 0 e 255 ou haxadecimais entre 0x00 e 0xFF.
Um identificador de cor ou false se a alocação falhar.
Esta função pode
retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser
avaliado como false. Leia a seção sobre Booleanos para mais
informações. Use o operador
=== para testar o valor retornado por esta
função.
| Versão | Descrição |
|---|---|
| 8.0.0 |
O parâmetro image agora espera uma instância de GdImage;
anteriormente, um resource gd válido era esperado.
|
Exemplo #1 Exemplo de uso de imagecolorallocatealpha()
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);
// algo para obter fundo branco com borda preta
$back = imagecolorallocate($image, 255, 255, 255); //fundo
$border = imagecolorallocate($image, 0, 0, 0); //borda
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;
// aloca cores com valores de alfa
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// desenhando 3 círculos sobrepostos
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);
// não esquecer de emitir um cabeçalho corretamente!
header('Content-Type: image/png');
// e finalmente, mostra o resultado
imagepng($image);
?>O exemplo acima produzirá algo semelhante a:
Exemplo #2 Converte valores típicos de alfa para uso com imagecolorallocatealpha()
Normalmente, valores de alfa 0 designam pixels totalmente transparentes,
e o canal alfa tem 8 bits. Para converter taia valores de alfa para que sejam compatíveis
com imagecolorallocatealpha(), uma aritmética simples é
suficiente:
<?php
$alpha8 = 0; // totalmente transparente
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // totalmente opaco
var_dump(127 - ($alpha8 >> 1));
?>O exemplo acima produzirá:
int(127) int(0)