imagecolorallocatealpha
(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — Aloca uma cor para uma imagem
Descrição
imagecolorallocatealpha() se comporta de forma idêntica a
imagecolorallocate() com a adição do parâmetro de
transparência alpha
.
Parâmetros
-
image
Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().
red
-
Valor do componente vermelho.
green
-
Valor do componente verde.
blue
-
Valor do componente azul.
alpha
-
Um valor entre
0
e127
.0
indica completamente opaco enquanto que127
indica completamente transparente.
red
, green
e blue
são inteiros
entre 0 e 255 ou haxadecimais entre 0x00 e 0xFF.
Valor Retornado
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.
Registro de Alterações
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.
|
Exemplos
Example #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);
imagedestroy($image);
?>
O exemplo acima produzirá algo semelhante a:
Example #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)
Veja Também
- imagecolorallocate() - Aloca uma cor para uma imagem
- imagecolordeallocate() - Desaloca uma cor de uma imagem