Foros del Web » Programando para Internet » PHP »

Peso de Imagenes

Estas en el tema de Peso de Imagenes en el foro de PHP en Foros del Web. Hola, Quiero crear una opcion en un site, en la que un usuario pueda subir una imagen y que dicha imagen cambie de tamaño automaticamente ...
  #1 (permalink)  
Antiguo 07/04/2009, 05:22
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 11 años
Puntos: 1
Peso de Imagenes

Hola,

Quiero crear una opcion en un site, en la que un usuario pueda subir una imagen y que dicha imagen cambie de tamaño automaticamente (y consecuentemente baje al maximo el peso).

Algun codigo para ello?

A parte, querria saber si tengo que almacenar la imagen inicial o si puedo simplemente convertirla "al vuelo".

Gracias!
  #2 (permalink)  
Antiguo 07/04/2009, 05:55
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: Peso de Imagenes

hola samyb8, puedes solventar ese problema utilizando este codigo
Código PHP:
$fileName $_FILES['imageFile']['name'];
$tmpName  $_FILES['imageFile']['tmp_name'];
$fileSize $_FILES['imageFile']['size'];
$fileType $_FILES['imageFile']['type'];


if (
$fileName)
                                   {
                                         
$fp      fopen($tmpName'r+');
                                         
$content fread($fpfilesize($tmpName)); //reads $fp, to end of file length
                                         
                                         
fclose($fp);
                                         
// get originalsize of image
                                         
$im imagecreatefromstring($content);
                                         
$width imagesx($im);
                                         
$height imagesy($im);            
                                                                 
                                         
// Set thumbnail-height to 180 pixels                                    
                                         
$imgh 180;                                          
                                         
// calculate thumbnail-height from given width to maintain aspect ratio
                                         
$imgw $width $height $imgh;                                          
                                         
// create new image using thumbnail-size
                                         
$thumb=imagecreatetruecolor($imgw,$imgh);                  
                                         
// copy original image to thumbnail
                                         
imagecopyresampled($thumb,$im,0,0,0,0,$imgw,$imgh,ImageSX($im),ImageSY($im)); //makes thumb
                                         
                                         
imagejpeg($thumb"test.jpg"80);  //imagejpeg($resampled, $fileName, $quality);            
                                         
$instr fopen("test.jpg","rb");  //need to move this to a safe directory
                                     
$image addslashes(fread($instr,filesize("test.jpg")));                        
                                         
mysql_query("UPDATE `user` SET `picture`= ( \"".$image."\") WHERE `userID`= '$userID' "); 
lo que hace es un resize antes del upload, espero que te sirva =)
  #3 (permalink)  
Antiguo 07/04/2009, 06:10
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 11 años
Puntos: 1
Respuesta: Peso de Imagenes

Es Genial!!

Una cosita, donde declaro la ruta donde guardar la nueva imagen?
  #4 (permalink)  
Antiguo 07/04/2009, 07:56
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 11 años, 7 meses
Puntos: 10
Respuesta: Peso de Imagenes

Hola por lo que pude ver asi a la pasada, la ruta la declaras aca

imagejpeg($thumb, "test.jpg", 80);

Otra cosa es que las imagenes las estas guardando siempre jpg y algo que yo personalmente le agregaria es un filtro para que solo se puedan subir archivos que sean imagenes y no cualquier cosa, creo que no esta, pero como dije lo vi a la pasada porque en este momento ando con poco tiempo, espero haber sido de ayuda

saludos
  #5 (permalink)  
Antiguo 07/04/2009, 09:00
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 11 años
Puntos: 1
Respuesta: Peso de Imagenes

OK.

Tengo una duda: Por que muchos Websites establecen un tamaño maximo de imagen a ser subida?

Pudiendo hacer esto, no tiene sentido. Ya que podrian aceptar imagenes grandes que automaticamente seran hechas pequeñas y de "1.5"Mb pasar a 50 Kb.

Gracias de nuevo!
  #6 (permalink)  
Antiguo 07/04/2009, 09:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Peso de Imagenes

Porque el hacer resize en el server consume muchos recursos, tantos de ram, y si aceptas imagenes muy grandes puede que te quedes sin recursos al hacer el resize, lo mejos siempre es aceptar imagenes pequeñas.

Saludos.
  #7 (permalink)  
Antiguo 07/04/2009, 09:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 11 años
Puntos: 1
Respuesta: Peso de Imagenes

Que tamaños son considerados pequeños para despues transformar a menores?

Gracias!
  #8 (permalink)  
Antiguo 07/04/2009, 10:08
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 11 años, 7 meses
Puntos: 10
Respuesta: Peso de Imagenes

La configuracion del php.ini limita por defecto el tamaño de las subidas a 2 mb, con eso yo creo que es mas que suficiente, pero bueno eso queda a criterio de cada uno, lo que si recomiendo que filtres el tipo de archivo a subir, con eso evitas errores innecesarios

saludos
  #9 (permalink)  
Antiguo 08/04/2009, 08:24
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: Peso de Imagenes

si tambien limitar el peso atraves de tu php.ini y si no me equivoco tambien poniendo este codigo en tu form

Código PHP:
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"
donde el value es el peso en bit, en este ejemplo es 2mb es lo maximo que puede el usuario subir, pero la bondad del codigo que te mostre anteriormente es que no tienes la necesidad de limitar a los usuarios con el tamano de la imagen
  #10 (permalink)  
Antiguo 08/04/2009, 08:40
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: Peso de Imagenes

Cita:
donde el value es el peso en bit, en este ejemplo es 2mb es lo maximo que puede el usuario subir, pero la bondad del codigo que te mostre anteriormente es que no tienes la necesidad de limitar a los usuarios con el tamano de la imagen
*bytes.

:P Tu codigo te da la bondad de subir cualquier tamaño de imagen, siempre y cuando esta no sobrepase el limite establecido en el php.ini
  #11 (permalink)  
Antiguo 08/04/2009, 09:47
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: Peso de Imagenes

Cita:
Iniciado por Ronruby Ver Mensaje
*bytes.

:P Tu codigo te da la bondad de subir cualquier tamaño de imagen, siempre y cuando esta no sobrepase el limite establecido en el php.ini
Gracias por la correccion Ronruby
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 20:12.