2011-10-11 37 views
7

Utilizo este código para crear una imagen desde otra imagen png, el fondo es negro por defecto. Mi pregunta es cómo establecer un fondo transparente?Imagen de PHP con fondo transparente

$input = imagecreatefrompng('image.png'); 
$output = imagecreatetruecolor(50, 50); 

imagecopy($output, $input, 4,0, 8,8, 8,8); 
imagecopy... etc. 

header('Content-Type: image/png'); 
imagepng($output); 

¿Hay una manera fácil de hacer esto? Gracias

Respuesta

11

Establece el color transparente en la imagen dada.

int imagecolortransparent (resource $image [, int $color ]) 

Aquí está la link

+1

¡Sí! Esto funcionó: '$ black = imagecolorallocate ($ output, 0, 0, 0); imagecolortransparent ($ output, $ black); 'antes de la imagen – 2by

8

Dado que la función de PHP imagecopymerge no funciona con el canal alfa, tendrá que utilizar la función desde el primer comentario en esta página imagecopymerge_alpha: http://php.net/manual/en/function.imagecopymerge.php

acabamos de la imagen transparente como la base y combínalo junto con la imagen que necesitas.

Lo he probado y funciona bien para un proyecto mío.

+0

esto funcionó para mí. – sinsuren

+0

Funcionó para mí también. –

2
imagealphablending($input, true); 
imagesavealpha($input, true); 

imagealphablending($output, true); 
imagesavealpha($output, true); 
+4

Esto es incorrecto, doblando debe establecerse en' false' antes de ejecutar 'imagesagealpha'. – Martin

Cuestiones relacionadas