En la imagen siguiente se utilizó un color negro con transparencia para dar el efecto de sombra:

Para defiir un color con transparencia, la función es la siguiente:
$color = imagecolorallocatealpha($imagen,R,G,B,A);
Como pueden ver, la sintaxis es muy similar a imagecolorallocate(), sin embargo existe un parámetro adicional (A). El parámetro A se refiere al nivel de transparencia (alpha) y su valor se define con un número entre 0 (cero) y 127, siendo 127 completamente transparente y 0 (cero) completamente opaco. Todos los valores intermedios nos darán como resultado parcialidades en la transparencia.
Muy Importante: La función imagecolorallocatealpha() sólo es aceptada en las imágenes TrueColor (24Bits). Esto no excluye a los GIFs, ya que cuando demos de alta la imagen, esta será TrueColor, pero cuando le demos salida a GIF automáticamente se indexará. En otras palabras, trabajaremos como si fuera TrueColor, pero el resultado terminará siendo una imagen indexada.
Nota: Los valores de R (rojo), G (verde) y B (azul) aceptan valores entre 0 (cero) y 255.
Ahora, una imágen en donde se utilizó la función anterior y su código correspondiente:

<?php
header("Content-type: image/gif");
// IMPORTANTE: Creamos una imagen TrueColor
$imagen = imagecreatetruecolor(420,120);
$bg = imagecolorallocate($imagen,230,230,230);
$amarillo = imagecolorallocate($imagen,245,220,0);
$azul = imagecolorallocate($imagen,50,200,255);
$rojo = imagecolorallocate($imagen,255,80,80);
// color con transparencia
$sombra = imagecolorallocatealpha($imagen,0,0,0,99);
imagefill($imagen,10,10,$bg);
imagefilledrectangle($imagen,19,50,189,100,$rojo);
imagefilledrectangle($imagen,209,50,399,100, $amarillo);
imagefilledrectangle($imagen,104,29,294,79, $sombra);
imagefilledrectangle($imagen,114,19,304,69,$azul);
imagegif($imagen);
imagedestroy($imagen);
?>
Nota: Aún cuando lo que se está generando es una imagen TrueColor y el resultado final es arrojado en un GIF (indexado), es válido ya que al momento de darle salida al GIF, automáticamente se indexará.
Usuarios que han visto este tema también han visto...
- Leer un archivo de texto con PHP
- Cacheando scripts para máxima optimización
- Covertir Números decimales a Romanos en PHP
- Captcha: Diferenciando automaticamente humanos de maquinas con PHP
- Evitar que las imagenes deformen tu web
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.