Foros del Web » Programando para Internet » PHP »

unir imagenes png

Estas en el tema de unir imagenes png en el foro de PHP en Foros del Web. Hola a todos: He estado buscando la forma de poder combinar o juntar dos o mas imagenes png y mostrar una sola. Aqui en los ...
  #1 (permalink)  
Antiguo 27/02/2009, 13:43
Avatar de Vannessa  
Fecha de Ingreso: septiembre-2005
Mensajes: 69
Antigüedad: 18 años, 6 meses
Puntos: 0
Pregunta unir imagenes png

Hola a todos:

He estado buscando la forma de poder combinar o juntar dos o mas imagenes png y mostrar una sola.

Aqui en los foros ya encontre como combinar dos png's, pero el png de base me queda con el fondo negro, cosa que me gustaria saber si es posible quede con fondo transparente, pues ademas de unir esas dos imagenes, necesito unirlo a otras mas.

Existe el procedimiento para quitar ese fondo negro de la imagen base???

Gracias por su apoyo, dejo el código que estoy utilizando.

Código PHP:

header
("Content-type: image/png"); 

$img1 "cielo.png";
$img2 "pastofrente.png";

// Creamos las dos imágenes a utilizar 
$imagen1 imagecreatefrompng($img1); 
$imagen2 imagecreatefrompng($img2); 

// Copiamos una de las imágenes sobre la otra 
imagecopy($imagen1,$imagen2,0,0,0,0,200,150); 

// Damos salida a la imagen final 
imagepng($imagen1); 

// Destruimos ambas imágenes 
imagedestroy($imagen1); 
imagedestroy($imagen2); 
  #2 (permalink)  
Antiguo 27/02/2009, 14:05
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: unir imagenes png

Holas Vanessa

Creo que el problema va en que no has dado la orden que las imágenes sean transparentes, o sea que permitan eso...

Código PHP:
imagecolortransparent($imagen1);
imagecolortransparent($imagen2); 
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 27/02/2009, 16:17
Avatar de Vannessa  
Fecha de Ingreso: septiembre-2005
Mensajes: 69
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: unir imagenes png

Hola Quinqui:

Sabes que puse lo que me dijiste, pero no me marca diferencia alguna. La imagen de arriba si tiene transparencia pero la de abajo sigue con el fondo negro. Mira, vuelvo a adjuntar el codigo por aquello de que lo escribi mal.

Saludos.

Código PHP:
$img1 "img_avatar/anika_04.png";
$img2 "img_avatar/anika_02.png";

// Creamos las dos imágenes a utilizar 
$imagen1 imagecreatefrompng($img1); 
$imagen2 imagecreatefrompng($img2); 
imagecolortransparent($imagen1); 

// Copiamos una de las imágenes sobre la otra 

imagecopy($imagen1,$imagen2,0,0,0,0,200,150); 
 

header("Content-type: image/png"); 
// Damos salida a la imagen final 
imagepng($imagen1); 

// Destruimos ambas imágenes 
imagedestroy($imagen1); 
imagedestroy($imagen2); 
  #4 (permalink)  
Antiguo 02/03/2009, 10:02
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: unir imagenes png

Holis!

He revisado tu código, y en verdad, no funcionó. De hecho, el parámetro este de la transparencia no era importante para este caso, porque php sí reconoce la transparencia original de las imágenes, se ve al copiar una sobre otra.

Ahora bien, se me ocurrió que tendrías que trabajar con una tercera imagen, una creada en ejecución, que tuviera la propiedad de transparencia asociada a un color. Al menos a mí me funcionó en Firefox...

Código PHP:
$img1 "img_avatar/anika_04.png";
$img2 "img_avatar/anika_02.png";

// Creamos las dos imágenes a utilizar 
$imagen1 imagecreatefrompng($img1); 
$imagen2 imagecreatefrompng($img2); 

// Creamos imagen destino
$imagen3 imagecreatetruecolor(200150); 

// Dibujamos un rectangulo lleno de color verde, 
// que sera nuestro color transparente
imagecolortransparent($imagen30x00FF00); 
imagefilledrectangle($imagen3002001500x00FF00);

// Copiamos una de las imágenes sobre la otra 
imagecopy($imagen1,$imagen2,0,0,0,0,200,150); 

// Copiamos las imagenes pegadas sobre la imagen destino 
imagecopy($imagen3$imagen10000200150); 

header("Content-type: image/png"); 
// Damos salida a la imagen final 
imagepng($imagen3); 

// Destruimos todas las imágenes 
imagedestroy($imagen1); 
imagedestroy($imagen2);  
imagedestroy($imagen3); 
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:37.