Foros del Web » Programando para Internet » PHP »

Problema con WATERMARK dinámico

Estas en el tema de Problema con WATERMARK dinámico en el foro de PHP en Foros del Web. Hola amigos, tengo un problema con el script para sellar imagenes dinámicamente. Lo que sucede es que la imagen "sello" que es la direccion de ...
  #1 (permalink)  
Antiguo 13/09/2003, 14:41
Avatar de sakul  
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema con WATERMARK dinámico

Hola amigos, tengo un problema con el script para sellar imagenes dinámicamente.
Lo que sucede es que la imagen "sello" que es la direccion de mi web, cambia dependiendo del tamaño original de la foto, a pesar de que en la web la foto se dimenciona siempre en 640x480. Entonces el sello aparece a veces bien, y otras demaciado chico.

El script es el siguiente:
Código PHP:
<?
ob_start
();
/* PARCHEADOR POR ELITE [email][email protected][/email] 
int imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)
*/

if(!empty($_GET['imagen']))
{
    
$imagen $_GET['imagen'];
    
$promo "publicidad.gif"//la imagen que sellara
    
$dir "imagenes/"//donde se guardaran las imagenes que no son al vuelo permisos CHMOD 0777
    
$explode explode(".",$imagen);
    
$final end($explode);
    
$final strtolower($final);
    switch(
$final)
    {
        case 
"jpg":
        
$im imagecreatefromjpeg($imagen);
        
$type "image/jpeg";
        break;
        case 
"png":
        
$im imagecreatefrompng($imagen);
        
$type "image/png";
        break;
        case 
"gif":
                                
$type "image/gif";
        
$im imagecreatefromgif($imagen);
        break;
    }    
    
$promoEXT explode(".",$promo);
    
$promoFINAL end($promoEXT);
    
$promoFINAL strtolower($promoFINAL);
    switch(
$promoFINAL)
    {
        case 
"jpg":
        
$promo_ imagecreatefromjpeg($promo);
        break;
        case 
"png":
        
$promo_ imagecreatefrompng($promo);
        case 
"gif":
        
$promo_ imagecreatefromgif($promo);
    }
        
    
$imX imagesx($im);
    
$imY imagesy($im);
    
    
$tam getimagesize($promo); //imagesx e imagesy me daban problemas asi que use este
    
    
$promoX $tam[0];
    
$promoY $tam[1];
    

    
$posX $imX $promoX
    
$posY 0

     
imagecopy($im,$promo_,$posX,$posY,0,0,$promoX,$promoY);
   
//  imagecopymerge($im,$promo_,$posX,$posY,0,0,$promoX,$promoY,100); 
       
if((!empty($_GET['ancho'])) || (!empty($_GET['alto'])))
    {
        if(!isset(
$_GET['ancho']))
        {
            
$tamanio getimagesize($imagen);
            
$asp = ($tamanio[1] / $_GET['alto']);
            
$ancho round($tamanio[0] / $asp);
                
        }
        else
        {
            
$ancho $_GET['ancho'];
        }
        
/*
        imagecopyresized ( int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)
        */
        
$thumb imagecreatetruecolor($ancho,$_GET['alto']);
        
imagecopyresampled ($thumb,$im0000,$ancho,$_GET['alto'],$imX,$imY);
    
        if(empty(
$_GET['name']))
           {    
            
imagejpeg($thumb); 
            
imagedestroy($thumb);
            
header("Content-Type: ".$type);
            
header("Content-Disposition: inline; filename=elite.jpg");
        }
        else
        {
            
$explode explode(".",$_GET['name']);
            
$end end($explode);
            
$end strtolower($end);
            switch(
$end)
            {
                case 
"jpg":
                
imagejpeg($thumb,$dir.$_GET['name']);
                break;
                case 
"png":
                
imagepng($thumb,$dir.$_GET['name']);
                break;
            }
        }
    }
    else
    {
    
//
        
if(empty($_GET['name']))
           {    
            
imagejpeg($im); 
            
imagedestroy($im);
            
header("Content-Type: ".$type);
            
header("Content-Disposition: inline; filename=elite.jpg");
        }
        else
        {
            
$explode explode(".",$_GET['name']);
            
$end end($explode);
            
$end strtolower($end);
            switch(
$end)
            {
                case 
"jpg":
                
imagejpeg($im,$dir.$_GET['name']);
                break;
                case 
"png":
                
imagepng($im,$dir.$_GET['name']);
                break;
            }
        
//
        
}


    }

}
else
{
    
// si accesesan directo muestras error o no se
}
ob_end_flush();
?>
  #2 (permalink)  
Antiguo 13/09/2003, 20:56
Avatar de sakul  
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 15 años, 4 meses
Puntos: 0
por favor alguien me ayude!

sdf23 tu que me pasaste el script, no sabes como solucionar esto?
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 05:00.