Foros del Web » Programando para Internet » PHP »

Superponer imagenes distorsionadas

Estas en el tema de Superponer imagenes distorsionadas en el foro de PHP en Foros del Web. Hola a todos, Estoy haciendo un programilla para superponer dos imagenes, pero me queda muy muy pixelada: http://camisetas.decoratelo.com/imag...y=0&color=rojo http://camisetas.decoratelo.com/imag...y=0&color=rojo El codigo utilizado para realizarlo es: ...
  #1 (permalink)  
Antiguo 26/04/2009, 10:26
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Superponer imagenes distorsionadas

Hola a todos,

Estoy haciendo un programilla para superponer dos imagenes, pero me queda muy muy pixelada:

http://camisetas.decoratelo.com/imag...y=0&color=rojo
http://camisetas.decoratelo.com/imag...y=0&color=rojo

El codigo utilizado para realizarlo es:

Código PHP:
<?php
header
("Content-type: image/jpeg");

if (
$_GET["color"] == "rojo") {
    
$imagen1 imagecreatefrompng('img/camisetas/rojo.png');
}
if (
$_GET["color"] == "verde") {
    
$imagen1 imagecreatefrompng('img/camisetas/verde.png');
}
if (
$_GET["color"] == "azul") {
    
$imagen1 imagecreatefrompng('img/camisetas/azul.png');
}
if (
$_GET["color"] == "negra_sin") {
    
$imagen1 imagecreatefrompng('img/camisetas/negra_sin.png');
}
if (
$_GET["color"] == "rosa") {
    
$imagen1 imagecreatefrompng('img/camisetas/rosa.png');
}

$imagen2 imagecreatefrompng("./imagenes_camisetas/".$_GET["imagen"]);

$size GetImageSize("./imagenes_camisetas/".$_GET["imagen"]);
$anchura=$size[0]; 
$altura=$size[1]; 

$imagen3 imagecreate(100,100);
$black imagecolorallocate($imagen3000);
imagecolortransparent($imagen3$black);

imagecopyresampled($imagen3$imagen20000100100$anchura$altura);

// Copiamos una de las imágenes sobre la otra 
imagecopy($imagen1,$imagen3,$_GET["x"]+80,$_GET["y"]+50,0,0,100,100);

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

// Destruimos ambas imágenes
imagedestroy($imagen2);
imagedestroy($imagen1);
?>
¿Alguna otra manera para que se vean mejor las imagenes?

Gracias y un saludo,

Última edición por Capi666; 26/04/2009 a las 10:36
  #2 (permalink)  
Antiguo 26/04/2009, 10:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Superponer imagenes distorsionadas

Usa imagecopyresampled siempre, te da mejores efectos que imagecopy.

Saludos.
  #3 (permalink)  
Antiguo 26/04/2009, 10:56
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Superponer imagenes distorsionadas

Hola,

No te entiendo, la ultima instruccion:

Código PHP:
imagecopy($imagen1,$imagen3,$_GET["x"]+80,$_GET["y"]+50,0,0,100,100); 
Estoy copiando la imagen3 sobre la imagen1, ¿como puedo usar ahi imagecopyresampled?

Gracias y un saludo,
  #4 (permalink)  
Antiguo 26/04/2009, 11:01
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Superponer imagenes distorsionadas

La imagen del segundo ejemplo que das se ve bien. El problema es con el primer ejemplo. La recomendación de GatorV es válida y muy cierta, pero debes tener en cuenta también la calidad de ambas imágenes.

En este caso, el png que usas para el primer ejemplo tiene aparentemente muy buena calidad, pero si lo vemos con un fondo de color:



Ahora ves de donde viene el pixeleado al redimensionar? Debes limpiar esa imagen para que obtengas un buen resultado al juntarla con la otra.

  #5 (permalink)  
Antiguo 26/04/2009, 13:07
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Superponer imagenes distorsionadas

Hola,

Muchisimas gracias por las molestias, por lo que es problema de la imagen, intentare poner imagenes de mejor calidad.

Por otra parte, ¿como podria sustituir el imagecopyresamples? No lo entiendo...

Un saludo y gracias,
  #6 (permalink)  
Antiguo 26/04/2009, 14:11
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Superponer imagenes distorsionadas

NO hace falta tocar nada de eso, pues ya lo estás empleando. No se usa para sustituir a imagecopy(), sino a imagencopyresized(), pero ahora ese no es el caso

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 01:01.