Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/09/2003, 13:41
Avatar de sakul
sakul
 
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 21 años, 8 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();
?>