Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/01/2007, 03:43
aruizroldan
 
Fecha de Ingreso: octubre-2003
Mensajes: 280
Antigüedad: 20 años, 6 meses
Puntos: 1
Re: Crear varios thumbnails en php

ME he bajado el siguiente código, pero no me hace nada. LA imagen original tiene un tamaño de 1184x888, y quiero ponerla con 100 pixeles de alto.

Supuestamente el código me tiene que crear la imagen miniatura.jpg pero no crea nada. ¿Cual es el problema?

Del mismo modo, me gustaria que la creara en una carpeta llamanda miniaturas, ¿Que habria que cambiar?

Gracias.

Código PHP:
<?

function imagen_dimensionar ($origen$destino$ancho_limite$alto_limite)
{
@
mkdir(miniaturas); //Queremos crearlo en la carpeta miniaturas
    
    //respeta el ancho y el alto
    
list($ancho_orig$alto_orig$tipo$atr) = getimagesize($origen);
    
    echo 
"Ancho orig : $ancho_orig, Alto orig = $alto_orig, Tipo : $tipo, Atributo : $atr<br>";

    
//para que no agrande la imagen
    
if ($ancho_orig $ancho_limite$ancho_limite $ancho_orig;
    if (
$alto_orig $alto_limite$alto_limite $alto_orig;

    
$alto_limite_probable $alto_orig $ancho_limite $ancho_orig;
    if (
$alto_limite_probable $alto_limite)
    {
        
$ancho_limite $ancho_orig $alto_limite $alto_orig;
    }
    else
    {
        
$alto_limite $alto_limite_probable;
    }
    return 
imagen($origen$destino$ancho_limite$alto_limite);
}
function 
imagen($origen$destino$ancho$alto)
{
    
$calidad 90;
    
$size getimagesize($origen); //Tomamos la dimension de la imagen  
    
    
$extensiones = array('''gif''jpg''png');
    
    
//obtenemos si el sistema desea obligar a un formato de salida
    
$ext strtolower(substr($destinostrlen($destino)-4));
    
    echo 
"extensiones : $ext<br>";
    switch (
$ext)
    {
        case 
'.gif':
            
$salida_formato 1;
            break;
        case 
'.jpg':
            
$salida_formato 2;
            break;
        case 
'jpeg':
            
$salida_formato 2;
            break;
        case 
'.png':
            
$salida_formato 3;
            break;
        default:
            
$salida_formato $size[2];
            
$destino $destino.'.'.$extensiones[$salida_formato];
    }
    
    
$width $size[0];
    
$height $size[1];
    
$ratio $width/$ancho;
    
$aux_height $height/$ratio;
    
    echo 
"Ancho : $width, Alto : $height, Radio : $ratio, Aux Height : $aux_height<br>";
    
    
$auxiliar $size[2];
    echo 
"... $auxiliar<br>";
    
    
//tomamos el tipo
    
if($size[2]==1){$src = @imagecreatefromgif($origen);}
    if(
$size[2]==2){$src = @imagecreatefromjpeg($origen);}
    if(
$size[2]==3){$src = @imagecreatefrompng($origen);}

    if (!
$src
    {
        return -
1;
    }
    else
    {
        
//Creamos una imagen a color real temporal donde copiamos el original  
        
$aux imagecreatetruecolor($ancho$aux_height);  
        
//Creamos una imagen a color real el cual será el soporte final del resultado  
        
$dst imagecreatetruecolor($ancho$alto);
        
//Copiamos el contenido de la imagen original a la nueva  
        
imagecopyresampled($aux$src0000$ancho$aux_height$width$height);
        
//Pegamos la imagen copiada
        
imagecopy($dst$aux000, ($aux_height-$alto)/2$ancho$alto);  
        
imagedestroy($aux);  

        if(
$salida_formato==1){ imagegif($dst$destino);}
        if(
$salida_formato==2){ imagejpeg($dst$destino$calidad);}
        if(
$salida_formato==3){ imagepng($dst$destino);}

        
imagedestroy($src);
        
imagedestroy($dst);
        return 
$extensiones[$salida_formato];
    }
}

$devuelto imagen_dimensionar("./foto.jpg","./miniatura.jpg",100,100);
echo 
"Devuelto : $devuelto<br>";


?>