Foros del Web » Programando para Internet » PHP »

ayuda + redimencionar imagen antes de subirla

Estas en el tema de ayuda + redimencionar imagen antes de subirla en el foro de PHP en Foros del Web. Gracias X leerlo en vista de que no pude encontrar en el foro mi pregunta es -¿como redimenciona una imagen que ha sido seleccionada con ...
  #1 (permalink)  
Antiguo 08/05/2008, 10:30
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Pregunta ayuda + redimencionar imagen antes de subirla

Gracias X leerlo en vista de que no pude encontrar en el foro mi pregunta es

-¿como redimenciona una imagen que ha sido seleccionada con un input file y enviada via post a el archivo upload.php que tengo ?

-¿como determino el tamaño de la imagen a redimencinan (por ejem 60*60)?

Gracias X su ayuda----->
  #2 (permalink)  
Antiguo 08/05/2008, 10:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: ayuda + redimencionar imagen antes de subirla

necesitas investigar mas.... cheka la libreria GD http://php.net/gd
  #3 (permalink)  
Antiguo 08/05/2008, 13:20
Avatar de Atomycko  
Fecha de Ingreso: diciembre-2005
Ubicación: Zapopan Jal.
Mensajes: 92
Antigüedad: 18 años, 3 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_vieja0000$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_vieja0000$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_vieja0000$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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:20.