Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/05/2008, 13:20
Avatar de Atomycko
Atomycko
 
Fecha de Ingreso: diciembre-2005
Ubicación: Zapopan Jal.
Mensajes: 92
Antigüedad: 20 años, 10 meses
Puntos: 12
Re: ayuda + redimencionar imagen antes de subirla

Saludos!

Asi es, primero nescecitas asegurarte de tener las librerias GD, ya que las tengas intenta esto.

Crea la siguiente funcion en el archivo upload.php
Código PHP:
<?php
function redimensionar($imagen, $nombre_imagen_asociada){
 
//directorio donde se va la imagen
 
$directorio = 'imagenes/' ;
 
//limites de ancho y alto
 
$nuevo_ancho = 100 ; 
 
$nuevo_alto = 100 ; 
 
//informacion de la imagen
 
$info_imagen = getimagesize($imagen); 
 
$alto = $info_imagen[1];
 
$ancho = $info_imagen[0];
 
$tipo_imagen = $info_imagen[2];
 
//Determina las nuevas medidas
 
if($ancho > $nuevo_ancho OR $alto > $nuevo_alto){ 
  if((
$alto - $nuevo_alto) > ($ancho - $nuevo_ancho)){ 
   
$nuevo_ancho = round($ancho * $nuevo_alto / $alto,0);
  }else{
   
$nuevo_alto = round($alto * $nuevo_ancho / $ancho,0);
  }
 }else{ 
  
//si la imagen es mas pequeña se queda igual
  
$nuevo_alto = $alto; 
  
$nuevo_ancho = $ancho; 
 } 
 
//dependiendo del tipo de imagen usar diferente funcion
 
switch ($tipo_imagen){ 
  case 
1: //si es gif ... 
  
$imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto);
  
$imagen_vieja = imagecreatefromgif($imagen);
  
//cambio de tamaño... 
  
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); 
  if (!
imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; 
  break; 
            
  case 
2: //si es jpeg ... 
  
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto); 
  
$imagen_vieja = imagecreatefromjpeg($imagen); 
  
//cambio de tamaño... 
  
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); 
  if (!
imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; 
  break; 
            
  case 
3: //si es png ... 
  
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto); 
  
$imagen_vieja = imagecreatefrompng($imagen); 
  
//cambio de tamaño... 
  
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); 
  if (!
imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; 
  break; 
 }
 return 
true; //si todo ha ido bien
} 
?>
Despues, al final de tu funcion de upload, ya que halla subido la imagen, aplicas la funcion anterior.
Código PHP:
/// Supongamos que subiste la imagen al directorio "imagenes/"
/// y que el nombre de la imagen le diste el valor "$imagen"
redimensionar("imagenes/$imagen","nuevo_nombre.jpg"); 
Bueno, pues espero que te funcione. Saludos!
__________________
PD: Los acentos fueron secuestrados.