(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — Asigna un color a una imagen
imagecolorallocatealpha() se comporta como
imagecolorallocate() con el parámetro adicional de
transparencia alpha.
imageredValor del componente rojo.
greenValor del componente verde.
blueValor del componente azul.
alpha
Un valor entre 0 y 127.
0 indica opacidad completa mientras que
127 indica transparencia completa.
red, green
y blue son enteros comprendidos entre 0 y 255, o
hexadecimales comprendidos entre 0x00 y 0xFF.
Un identificador de color o false si la asignación falla.
Esta función puede retornar false, pero también puede retornar un valor equivalente a false.
Por favor, lea la sección sobre los booleanos para más información.
Utilice el operador ===
para probar el valor de retorno exacto de esta función.
| Versión | Descripción |
|---|---|
| 8.0.0 |
image ahora espera una instancia de GdImage;
anteriormente, se esperaba un resource gd válido.
|
Ejemplo #1 Ejemplo de uso de imagecolorallocatealpha()
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);
// algo para obtener un fondo blanco con un borde negro
$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;
// asigna colores con valores alpha
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// Dibuja 3 elipses
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);
// No olvidar enviar un header correcto
header('Content-Type: image/png');
// y finalmente, mostrar el resultado
imagepng($image);
?>Resultado del ejemplo anterior es similar a:
Ejemplo #2 Conversión de valor alpha típico para usarlo con imagecolorallocatealpha()
Generalmente los valores alpha 0 designan los píxeles
completamente transparentes, y el canal alpha tiene 8 bits. Para convertir
tales valores alpha para ser compatibles con
imagecolorallocatealpha(), un poco de aritmética simple
es suficiente:
<?php
$alpha8 = 0; // completamente transparente
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // completamente opaco
var_dump(127 - ($alpha8 >> 1));
?>El ejemplo anterior mostrará:
int(127) int(0)