Foros del Web » Programando para Internet » PHP »

Superponer Imagenes con gd

Estas en el tema de Superponer Imagenes con gd en el foro de PHP en Foros del Web. Hola gente, hace más de dos horas que estoy luchando con esto y no doy con la solución, como dice el título, estoy tratando superponer ...
  #1 (permalink)  
Antiguo 05/09/2009, 19:40
Avatar de totote  
Fecha de Ingreso: diciembre-2006
Mensajes: 61
Antigüedad: 17 años, 4 meses
Puntos: 0
Superponer Imagenes con gd

Hola gente, hace más de dos horas que estoy luchando con esto y no doy con la solución, como dice el título, estoy tratando superponer dos imagenes de formato png.

La situacion es la siguiente tengo una imagen de fondo y una imagen de texto, las dos con transparencias, la idea es poner la imagen de texto sobre la imagen de fondo y mostrar el resultado, utilizado un script (que luego lo muestro) puedo lograrlo, pero resulta que al poner una imagen sobre la otra deja un fondo negro que no debería estar y no se como solucionarlo.

Las imagenes son estas:

Fondo


Texto



Este es el script que estoy utilizando
Código PHP:
<?php
//header("Content-type: image/png");

// Creo dos imagenes, una es el fondo y la otra el texto que le voy a superponer
$fondo imagecreatefrompng("img/fondo.png");
$texto imagecreatefrompng("img/texto.png");

// Obtengo los tamaños de las imagenes
$fondoAncho imagesx($fondo);
$fondoAlto imagesy($fondo);
$textoAncho imagesx($texto);
$textoAlto imagesy($texto);

// Creo la imagen de resultado que será del tamaño del fondo
$imagen imagecreatetruecolor($fondoAncho,$fondoAlto);

// Copiamo la imágen de fonco a la imagen final
imagecopy($imagen,$fondo,0,0,0,0,$fondoAncho,$fondoAlto);

// Copiamo la imágen de fonco a la imagen final
imagecopy($imagen,$texto,0,$fondoAlto $textoAlto,0,0,$fondoAncho,$fondoAlto);

// Damos salida a la imagen final
imagepng($imagen,"img/resultado.png");

// Destruimos las imágenes
imagedestroy($fondo);
imagedestroy($texto);
imagedestroy($imagen);
?>
y este es el resultado


Espero que me puedan ayudar.

Saludos
  #2 (permalink)  
Antiguo 06/09/2009, 00:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Superponer Imagenes con gd

Tal vez sirva: imagecolortransparent()
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 06/09/2009, 07:59
Avatar de totote  
Fecha de Ingreso: diciembre-2006
Mensajes: 61
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Superponer Imagenes con gd

triby, gracias por contestar, lo probé pero no resultó, seguiré intentando

Saludos.
  #4 (permalink)  
Antiguo 06/09/2009, 08:58
Avatar de totote  
Fecha de Ingreso: diciembre-2006
Mensajes: 61
Antigüedad: 17 años, 4 meses
Puntos: 0
Solución

Bueno luego de seguir investigando, y probando cosas me di cuenta de mi error, el fondo negro lo hace cuando se quiere copiar un tamaño mayor al de la imagen, lo que estaba haciendo mal era poner el tamaño de la imagen de fondo (que es mayor al de la imagen de texto) entonces esto hacia que me quedara un fondo negro, acá dejo el script modificado y funcionando.

Código PHP:
<?php
// Creo dos imagenes, una es el fondo y la otra el texto que le voy a superponer
$fondo imagecreatefrompng("img/fondo.png");
$texto imagecreatefrompng("img/texto.png");

// Obtengo los tamaños de las imagenes
$fondoAncho imagesx($fondo);
$fondoAlto imagesy($fondo);
$textoAncho imagesx($texto);
$textoAlto imagesy($texto);

// Copiamo la imágen de fondo a la imagen final 
// Acá está la corrección antes tenia $fondoAncho y $fondoAlto
imagecopy($fondo,$texto,0,$fondoAlto $textoAlto,0,0,$textoAncho,$textoAlto);

// Damos salida a la imagen final
imagepng($fondo,"img/resultado.png");

// Destruimos las imágenes
imagedestroy($fondo);
imagedestroy($texto);
?>
Saludos
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 00:17.