2009-11-10 17 views

Respuesta

8

Aquí es un ejemplo de la función imagecolortransparent (si ayuda):

<?php 
// Create a 55x30 image 
$im = imagecreatetruecolor(55, 30); 
$red = imagecolorallocate($im, 255, 0, 0); 
$black = imagecolorallocate($im, 0, 0, 0); 

// Make the background transparent 
imagecolortransparent($im, $black); 

// Draw a red rectangle 
imagefilledrectangle($im, 4, 4, 50, 25, $red); 

// Save the image 
imagepng($im, './imagecolortransparent.png'); 
imagedestroy($im); 
?> 
+1

Eric golpéame aquí. Más tarde en la misma página, alguien comenta, "Cuando se utiliza imágenes de paleta (creados con imagecreate()), el primer color asignado es el color de fondo. Este color no puede ser utilizado para la transparencia. Así que si usted quiere hacer el fondo transparente, primero asigne un color de fondo falso, luego asigne el color de fondo real y declare que es transparente. " –

40

Basta con hacer esto:

imagealphablending($img, false); 
imagesavealpha($img, true); 

Antes de la salida. Asegúrese de que todos los archivos fuente (si utilizó alguno) están configurados en PNG de 32 bits con transparencia; de lo contrario, la salida puede diferir con fondo negro o la transparencia no cumple.

+0

La transparencia es a menudo llamado "alfa". –

+1

Más corto y más dulce. –

+1

La solución aceptada no funcionó como se esperaba, ¡pero esta es perfecta! – testing

0

Hay una función llamada imagecolortransparent que le permite establecer qué color se hace transparente. No sé si esto responde tu pregunta.

15

Aquí está el ejemplo

 $newimage = imagecreatetruecolor($dst_w, $dst_h); 
    imagealphablending($newimage, false); 
    imagesavealpha($newimage, true); 
    $transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127); 
    imagefill($newimage, 0, 0, $transparentindex); 
+0

mejor respuesta! ¡trabajado como un encanto! – andys

Cuestiones relacionadas