Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/09/2006, 08:40
Avatar de claudiovega
claudiovega
 
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Yo uso algo asi, una funcionque encontré por ahi.

Código PHP:
function generarThumbAlbum($archivo,$nombredest,$lado)
{
    
$ext_archivo=substr($archivo,-3);
        
$ext strtolower($ext_archivo);
        
$tam=getimagesize($archivo);

        
//uso una relacion respecto del menor vs el tamaño pedido
        
if($tam[0]<$tam[1])
        {
              
$n_ancho=$lado;
            
$n_alto=($tam[1]*($lado/$tam[0]));
        }
        else
        {
              
$n_alto=$lado;
            
$n_ancho=($tam[0]*($lado/$tam[1]));
        }

        if(
$ext=="jpg" || $ext=="jpeg")
        {
            
//
            
$origen  imagecreatefromjpeg($archivo);
            
$imagen  imagecreatetruecolor($lado,$lado);
            
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
            
imagejpeg($imagen,$nombredest);
        }
        else if(
$ext=="png")
        {
            
$origen  imagecreatefrompng($archivo);
            
$imagen  imagecreatetruecolor($lado,$lado);
            
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
            
imagepng($imagen,$nombredest);
        }
        else if(
$ext=="gif")
        {
            
$origen  imagecreatefromgif($archivo);
            
$imagen  imagecreatetruecolor($lado,$lado);
            
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
            
imagegif($imagen,$nombredest);
        }
        else
        {
            return 
false;
        }
        return 
$nombredest;

La funcion recibe esto parametros:

$archivo: nombre del archivo de imagen origen
$nombredest: nombre archivo de imagen destino
$lado: tamaño en pixeles de la imagen resultante

La funcion devuelve el nombre del archivo de destino si la imagen corresponde a los tipos permitidos y no tiene ningun tipo de control de errores, jaja.