Foros del Web » Programando para Internet » PHP »

Insertar imagen gif, encima de una imagen dinámica en png

Estas en el tema de Insertar imagen gif, encima de una imagen dinámica en png en el foro de PHP en Foros del Web. Hola, tengo un problema. Deseo insertar un .gif segun variable que puede cambiar en una imagen dinámica png. Aquí os copio el script. Este es ...
  #1 (permalink)  
Antiguo 01/01/2011, 12:50
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 8 años, 11 meses
Puntos: 0
Insertar imagen gif, encima de una imagen dinámica en png

Hola, tengo un problema.

Deseo insertar un .gif segun variable que puede cambiar en una imagen dinámica png. Aquí os copio el script.
Este es una imagen.png de fondo ya creada en archivo y sobre ella poner a base de imagestring texto que varia en función de las variables que recojo de una tabla que esta en una web. (algo así como unas estadísticas de un juego de rol online).

Ademas del texto que varia me gustaría poder insertar imagenes que NO ESTAN en mi servidor, sino tb en la web donde extraigo los datos de la tabla, estan en .gif y una ruta a esos archivos sería por ejemplo:

http://www.uowod.com/dbimages/Enano.gif
http://www.uowod.com/dbimages/{$raza}.gif


Vale, entonces tengo el .png dinamico generado, con texto y un fondo negro, el problema viene al insertar .gif encima con imagecopy

Código:
header("Content-Type: image/gif");
$raza3= imagecreatefromgif("http://www.uowod.com/dbimages/{$raza1}.gif");
imagecopy($image, $raza3, 285, 17, 0, 0, 46, 78);
$arma3= imagecreatefromgif("http://www.uowod.com/dbimages/{$armausada1}.gif");
imagecopy($image, $armausada3, 350, 17, 0, 0, 46, 47);


imagepng($image);
imagedestroy($image);
Explico, para que este trozo no provoque un error al resto y haga que la imagen no se muestre (sin errores ni nada, simplemente la imagen no se carga) la variables finales en este caso raza1 y armausada no pueden ser mas de 1 palabra.
Si es por ejemplo Rayo.gif la carga encima del png perfectamente y tan contentos, pero si es Perico de los palotes.gif, la tenemos liada. No carga ni nada.

He probado a hacerle urlencode y todo, a cambiar variables etc, esta todo ultrarevisado.

A ver si teneis alguna idea.

A ver si podeis ayudarme. Ojala podais ayudarme, es mi primer trabajo en php y me he quedado atascado completamente.
  #2 (permalink)  
Antiguo 01/01/2011, 16:51
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 16 años, 7 meses
Puntos: 23
Información Respuesta: Insertar imagen gif, encima de una imagen dinámica en png

Buenas!!!

pues yo tengo este codigo que uso y funciona perfectamente

Código PHP:
<?php
// Load the stamp and the photo to apply the watermark to
$foto "photo.jpg";
echo 
protegefoto($foto);
function 
protegefoto($fotop)
{
 
$proteg "stamp.png";
 
$stamp imagecreatefrompng($proteg);
 
$im imagecreatefromjpeg($fotop);
     
// Set the margins for the stamp and get the height/width of the stamp image
     
$marge_right 10;
     
$marge_bottom 10;
     
$sx imagesx($stamp);
     
$sy imagesy($stamp);

   
// Copy the stamp image onto our photo using the margin offsets and the photo
   // width to calculate positioning of the stamp.
   
imagecopy($im$stampimagesx($im) - $sx $marge_rightimagesy($im) - $sy $marge_bottom00imagesx($stamp), imagesy($stamp));

      
// Output and free memory
      
header('Content-type: image/png');
      
imagepng($im);
      
imagedestroy($im);
}
?>
adaptado a tus necesidades

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #3 (permalink)  
Antiguo 01/01/2011, 17:30
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Insertar imagen gif, encima de una imagen dinámica en png

eso es identico a mi codigo, es lo que puse arriba

Cita:
$im2= "http://www.uowod.com/dbimages/$armausada1.gif";
$stamp2= imagecreatefromgif($im2);

imagecopy($image, $stamp2, 285, 17, 0, 0, 46, 78);
Si $armausada1 es "LALILO LALOLA.GIF" (2 palabras) no funciona. Si es solamente una palabra SI funciona.


El caso es como hacer que funcione cuando son 2 palabras en el nombre de un .gif

Última edición por lysandor; 01/01/2011 a las 17:45
  #4 (permalink)  
Antiguo 02/01/2011, 06:12
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Insertar imagen gif, encima de una imagen dinámica en png

Vale, creo que el error esta en que

SI ES PERICO PALOTES.GIF muestra error (colocandolo manualmente sin variables)

SI ES PERICO%20PALOTES.GIF NO MUESTRA ERROR (colocandolo manualmente sin variables)

Si PERICO PALOTES.GIF ES $armausada1 ¿como podría hacer que se transformara automaticamente es PERICO%20PALOTES.GIF

A ver si podeis ayudarme

Es decir,

Código:
 $magfoto= imagecreatefromgif("http://www.uowod.com/dbimages/Armadura%20Reactiva.gif");
imagecopy($image, $magfoto, 400, 20, 0, 0, 43, 44);
Si funciona

pero si fuera
Código:
 $magfoto= imagecreatefromgif("http://www.uowod.com/dbimages/Armadura Reactiva.gif");
imagecopy($image, $magfoto, 400, 20, 0, 0, 43, 44);
No funciona

Esto es haciéndolo sin una variable, cosa que no quiero. Pero al menos estoy seguro de que hay falla algo.

Yo quiero que se pueda hacer simplemente escribiendo
imagecreatefromgif("http://www.uowod.com/dbimages/$variable.gif");

Pero si da el caso de que esa variable tiene espacios y no se colocan automaticamente los %20 pues da error...
  #5 (permalink)  
Antiguo 07/06/2011, 12:47
 
Fecha de Ingreso: septiembre-2008
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Insertar imagen gif, encima de una imagen dinámica en png

Prueba a sustituir los espacios de la variable con str_replace:

Código:
header("Content-Type: image/gif");

$raza1_corregida = str_replace(' ','%20',$raza1);

$raza3= imagecreatefromgif("http://www.uowod.com/dbimages/{$raza1_corregida}.gif");
imagecopy($image, $raza3, 285, 17, 0, 0, 46, 78);

$armausada1_corregida = str_replace(' ','%20',$armausada1);

$armausada3= imagecreatefromgif("http://www.uowod.com/dbimages/{$armausada1_corregida}.gif");
imagecopy($image, $armausada3, 350, 17, 0, 0, 46, 47);


imagepng($image);
imagedestroy($image);
Un saludo de un antiguo jugador ;)
  #6 (permalink)  
Antiguo 07/06/2011, 12:53
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 8 años, 10 meses
Puntos: 209
Respuesta: Insertar imagen gif, encima de una imagen dinámica en png

claro, tienes que pasar una url valida, sin espacios, tienes que hacer como te dice PablukY
  #7 (permalink)  
Antiguo 07/06/2011, 12:56
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 8 años, 7 meses
Puntos: 46
Respuesta: Insertar imagen gif, encima de una imagen dinámica en png

yo creo que simplemente aplicale esta funcion a tu $variable
http://www.php.net/manual/es/function.urlencode.php .

urlencode($variable);
__________________
Agregadecer no cuesta nada O SI?
  #8 (permalink)  
Antiguo 08/06/2011, 19:09
Avatar de Dekadence  
Fecha de Ingreso: junio-2011
Mensajes: 15
Antigüedad: 8 años, 6 meses
Puntos: 2
Respuesta: Insertar imagen gif, encima de una imagen dinámica en png

Ambas respuestas realizan la misma función, por lo tanto son buenas las 2, más sencilla y simplificada esta última.

Yo para evitar estos problemas no suelo utilizar espacios en los nombre de archivo, siempre utilizo '_' como espacio, ahorra muchos dolores de cabeza ;)

Un saludo

Etiquetas: encima, gif, png
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 13:29.