Foros del Web » Programando para Internet » PHP »

Redimensionar Imagen

Estas en el tema de Redimensionar Imagen en el foro de PHP en Foros del Web. Hola, tengo que subir fotos mediante un formulario al servidor. Hice que funcione la subida pero me gustaria que pueda redimencionarla y si es posible ...
  #1 (permalink)  
Antiguo 09/08/2011, 15:47
 
Fecha de Ingreso: enero-2010
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 0
Redimensionar Imagen

Hola, tengo que subir fotos mediante un formulario al servidor. Hice que funcione la subida pero me gustaria que pueda redimencionarla y si es posible bajar el peso en kb. Tendria que redimensionar mas o menos la imagen a un ancho de 300 px y que la altura sea propocional al ancho. Me podrian ayudar a adaptar el codigo con la parte de redimencionar y si es posible bajar de peso en kb?

Aqui el codigo:

Código PHP:
Ver original
  1. $status = "";
  2.       ($_POST["action"] == "upload") or die ("Error al subir la imagen.");
  3.           // obtenemos los datos del archivo
  4.           $tamano = $_FILES["archivo"]['size'];
  5.           $tipo = $_FILES["archivo"]['type'];
  6.           $archivo = $_FILES["archivo"]['name'];
  7.  
  8. // guardamos el archivo a la carpeta "FotosInmuebles"
  9.      
  10.                      
  11.  if ($_FILES['archivo']['name']!=NULL) {
  12.           $destino =  "FotosInmuebles/".$prefijo."_".$archivo;
  13.       (copy($_FILES['archivo']['tmp_name'],$destino)) or die ("Error al subir la imagen ".$archivo);
  14.           $status = "La imagen <b>".$archivo."</b> se ha subido correctamente </br>";
  15.           echo $status; }
  #2 (permalink)  
Antiguo 09/08/2011, 15:59
Avatar de lordglazoon  
Fecha de Ingreso: julio-2011
Mensajes: 54
Antigüedad: 12 años, 9 meses
Puntos: 8
Respuesta: Redimensionar Imagen

Esta siempre ocupo me anda bien

Código PHP:
Ver original
  1. function redimensionar_imagen($imagen, $nombre_imagen_asociada)
  2.      {
  3.        //indicamos el directorio donde se van a colgar las imágenes
  4.        $directorio = 'tmp/' ;
  5.        //establecemos los límites de ancho y alto
  6.        $nuevo_ancho = 570 ;
  7.        $nuevo_alto = 300 ;
  8.  
  9.        //Recojo información de la imágen
  10.        $info_imagen = getimagesize($imagen);
  11.        $alto = $info_imagen[1];
  12.        $ancho = $info_imagen[0];
  13.        $tipo_imagen = $info_imagen[2];
  14.  
  15.        //Determino las nuevas medidas en función de los límites
  16.        if($ancho > $nuevo_ancho OR $alto > $nuevo_alto)
  17.        {
  18.          if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho))
  19.          {
  20.            $nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ;    
  21.          }
  22.          else
  23.          {
  24.            $nuevo_alto = round($alto * $nuevo_ancho / $ancho,0);  
  25.          }
  26.        }
  27.        else //si la imagen es más pequeña que los límites la dejo igual.
  28.        {
  29.          $nuevo_alto = $alto;
  30.          $nuevo_ancho = $ancho;
  31.        }
  32.  
  33.        // dependiendo del tipo de imagen tengo que usar diferentes funciones
  34.        switch ($tipo_imagen) {
  35.          case 1: //si es gif …
  36.            $imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto);
  37.            $imagen_vieja = imagecreatefromgif($imagen);
  38.            //cambio de tamaño…
  39.            imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  40.            if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
  41.          break;
  42.  
  43.          case 2: //si es jpeg …
  44.            $imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
  45.            $imagen_vieja = imagecreatefromjpeg($imagen);
  46.            //cambio de tamaño…
  47.            imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  48.            if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
  49.          break;
  50.  
  51.          case 3: //si es png …
  52.            $imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
  53.            $imagen_vieja = imagecreatefrompng($imagen);
  54.            //cambio de tamaño…
  55.            imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  56.            if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
  57.  
  58.          break;
  59.        }
  60.        return true; //si todo ha ido bien devuelve true
  61.  
  62. }
  #3 (permalink)  
Antiguo 09/08/2011, 16:00
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Redimensionar Imagen

Hola que tal.

Checa esto Redimencionar imagenes

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 09/08/2011, 16:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Redimensionar Imagen

Esta la estamos trabajando varios colaboradores de este foro http://www.forosdelweb.com/f68/aport...agenes-912637/
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 10/08/2011, 08:22
 
Fecha de Ingreso: enero-2010
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Redimensionar Imagen

Gracias, voy a ir probando lo que me recomendaron..

Etiquetas: redimensionar, formulario
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 00:14.