Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/02/2011, 14:43
kirst
 
Fecha de Ingreso: septiembre-2009
Mensajes: 230
Antigüedad: 17 años
Puntos: 2
Respuesta: Redimensionar imagen con PHP de forma proporcional

Yo tengo esta funcion que lo que haces es impedir que las imagenes sean superiores a 720px 540px, es la misma que usa facebook, aunque la hice yo..

Código PHP:
                           // Le doy un valor RANDOM al nombre del archivo para evitar errores
                           
$randomtext = substr(md5(uniqid(rand())),0,6);
                           
                           
// Le doy la ruta de subida
                           
$uploaddir=$upload_folder.$_SESSION['nickname'].'/'.$album."/";
                           
                           
// Sacamos caracteres especiales al archivo subido por si es un script malicioso
                           
$nombre = htmlspecialchars($nombre);
                           
                           
// Empiezo el proceso para achivar el tamaño y dimensiones de la imágen
                            //$maxsize += 8;
                            
list($width, $height) = getimagesize("$archivo");
                            list(
$widthTRUE, $heightTRUE) = getimagesize("$archivo");
                            if(
$width > '720') $width = '720';
                            elseif(
$width <= '720') $width = $width;
                            if(
$height > '540') $height = '540';
                            elseif(
$height <= '540') $height = $height;
                            
//$width = min($width, $height);
                            
$tn = imagecreatetruecolor($width, $height);
                            
$image = imagecreatefromjpeg("$archivo");
                            
imagecopyresampled($tn, $image, 0, 0, 0, 0, $width, $height, $widthTRUE, $heightTRUE);
                            
                           
//if(copy($archivo, $uploaddir.$randomtext.'_'.$nombre))
                           
if(imagejpeg($tn, $uploaddir.$randomtext.'_'.$nombre, 90))
                                {
                                   echo 
"<b>Subida con Exito:</b> ".$nombre."<br />";
                                   
$subida = true;
                                }