imagecolorallocatealpha

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

imagecolorallocatealphaAsigna un color a una imagen

Descripción

imagecolorallocatealpha(
    GdImage $image,
    int $red,
    int $green,
    int $blue,
    int $alpha
): int|false

imagecolorallocatealpha() se comporta como imagecolorallocate() con el parámetro adicional de transparencia alpha.

Parámetros

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.

Los parámetros red, green y blue son enteros comprendidos entre 0 y 255, o hexadecimales comprendidos entre 0x00 y 0xFF.

Valores devueltos

Un identificador de color o false si la asignación falla.

Advertencia

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.

Historial de cambios

Versión Descripción
8.0.0 image expects a GdImage instance now; previously, a valid gd resource was expected.

Ejemplos

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:

Salida del ejemplo: imagecolorallocatealpha()

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)

Ver también