(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
.
image
Un recurso image, es devuelto por una de las funciones de creación de imágenes, como imagecreatetruecolor().
red
Valor del componente rojo.
green
Valor del componente verde.
blue
Valor 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
devolver el valor booleano false
, pero también puede devolver un valor no booleano que se
evalúa como false
. Por favor lea la sección sobre Booleanos para más
información. Use el operador
=== para comprobar el valor devuelto por esta
función.
Versión | Descripción |
---|---|
8.0.0 |
image expects a GdImage
instance now; previously, a valid gd resource was expected.
|
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);
?>
El resultado del ejemplo sería algo 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 resultado del ejemplo sería:
int(127) int(0)