Foros del Web » Programando para Internet » PHP »

rebajar el peso de una imagen en el servidor

Estas en el tema de rebajar el peso de una imagen en el servidor en el foro de PHP en Foros del Web. Hola, tengo un código q sube una foto de cualquier tamaño al servidor. Allí, deseo transformarla para que ocupe menos disco duro (Kb). No estoy ...
  #1 (permalink)  
Antiguo 03/07/2011, 16:36
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
rebajar el peso de una imagen en el servidor

Hola, tengo un código q sube una foto de cualquier tamaño al servidor. Allí, deseo transformarla para que ocupe menos disco duro (Kb). No estoy interesado en cambiar el alto o ancho de la imagen, sólo el tamaño en bytes.

He leído algo de la librería GD de PHP pero no encuentro nada que haga bajar el peso de la imagen... alguien sabe cómo hacerlo?
  #2 (permalink)  
Antiguo 03/07/2011, 17:31
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: rebajar el peso de una imagen en el servidor

solo haciendo una pequeña busqueda en google me salio esto

http://www.sitiotutoriales.com/Reduc...s-con-PHP.html

http://www.forosdelweb.com/f18/bajar...rchivo-711546/

http://www.calavi.net/entresijos/art...s-con-php.html

saludos...
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #3 (permalink)  
Antiguo 03/07/2011, 21:50
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: rebajar el peso de una imagen en el servidor

Una imagen, por ejemplo jpg está comprimida ya, no se puede bajar más peso a menos que cambies el tamaño original.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 04/07/2011, 02:11
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: rebajar el peso de una imagen en el servidor

gracias a ambos. sí, johhan16, precisamente los 2 primeros links ya los chequeé antes de que posteases ;) y uno parecido al tercero tb.

el tema es q yo pensaba q había alguna forma de cambiar el peso sin cambiar el tamaño original (pero veo que no). según veo, la cuestión es q, estando la imagen en el servidor en tamaño y peso original, se convierta "temporalmente" en el servidor mediante la librería GD en una imagen más pequeña en tamaño y se envíe al cliente, reduciendo así el tiempo de carga de la página y la transferencia de datos del servidor al cliente.

estoy en lo cierto, no?
  #5 (permalink)  
Antiguo 04/07/2011, 09:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: rebajar el peso de una imagen en el servidor

Pasa por el área de aportes hay un tema que te muestra como mostrar una imagen en binario solamente sin modificar la imagen y mostrarla en un tamaño menor.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 04/07/2011, 10:39
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: rebajar el peso de una imagen en el servidor

gracias abimaelrc pero dónde está ese área? no lo conozco... aún así... te refieres a guardar la imagen dentro de la base de datos? yo es q la imagen la guardo tal cual en .jpg

no valdría tb el link q me pasó johhan16? http://www.calavi.net/entresijos/art...s-con-php.html
  #7 (permalink)  
Antiguo 04/07/2011, 10:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: rebajar el peso de una imagen en el servidor

En cada foro, por lo regular hay unos temas marcados como importantes y esos temas dicen unos faqs, aportes, etc. Te recomiendo que veriques cada uno de ellos, tal vez en el futuro haya alguno que te ayude con lo que quieres hacer.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 04/07/2011, 11:29
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: rebajar el peso de una imagen en el servidor

a ver si entiendo una cosa.. a veces saco una foto con la camara de fotos (fotos de 2 MB), y muchas veces para reducirla lo que hacía era abrirla con el paint y sobreescribirla desde el mismo paint, con eso lograba reducir mucho su tamaño (KB), y no cambia su tamaño.. parece ser que si existe alguna forma de reducir su tamaño sin redimensionarla.
__________________
aconcaguaestudio.com
  #9 (permalink)  
Antiguo 04/07/2011, 11:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: rebajar el peso de una imagen en el servidor

¿Estás seguro que modificaste solo el peso? Fíjate en los pixeles.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 04/07/2011, 12:05
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: rebajar el peso de una imagen en el servidor

Cita:
Iniciado por iviamontes Ver Mensaje
a ver si entiendo una cosa.. a veces saco una foto con la camara de fotos (fotos de 2 MB), y muchas veces para reducirla lo que hacía era abrirla con el paint y sobreescribirla desde el mismo paint, con eso lograba reducir mucho su tamaño (KB), y no cambia su tamaño.. parece ser que si existe alguna forma de reducir su tamaño sin redimensionarla.
No lo garantizo al 100% pero una fotografía, en el caso de las cámaras digitales, no sólo son los píxeles, sino también contienen otros datos tales como (Metadatos):

modo de color, perfil de color, fecha de creación, fecha de modificación, resolución, profundidad de bits y otras opciones como si fue sacada con flash o no etc.

Es decir, no sólo hay guardado una imagen, hay otros datos.

Debido a esto si copias o haces una captura y lo guardas desde otra aplicación esos metadatos van a cambiar. (menos info creo), pero realmente lo que pasa es que cambia la resolución aunque el formato y las dimensiones sean las mismas que la original.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #11 (permalink)  
Antiguo 04/07/2011, 13:13
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: rebajar el peso de una imagen en el servidor

ok abimaelrc me podrías decir dónde puedo encontrar eso? lo de los aportes puede tener cientos de mensajes... ¿? graciasss
  #12 (permalink)  
Antiguo 04/07/2011, 14:51
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: rebajar el peso de una imagen en el servidor

Cita:
Iniciado por humanista Ver Mensaje
ok abimaelrc me podrías decir dónde puedo encontrar eso? lo de los aportes puede tener cientos de mensajes... ¿? graciasss
Cita:
Iniciado por abimaelrc Ver Mensaje
Pasa por el área de aportes hay un tema que te muestra como mostrar una imagen en binario solamente sin modificar la imagen y mostrarla en un tamaño menor.
Primer tema de Aportes.........
http://www.forosdelweb.com/f18/tutor...inario-127775/
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #13 (permalink)  
Antiguo 04/07/2011, 15:39
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: rebajar el peso de una imagen en el servidor

Lo siento, creo que no me expliqué bien.

No veo la utilidad de subir una imagen a una base de datos (para qué?), no es más fácil subir la imagen al servidor y luego con las funciones de php reducir su tamaño (altura y anchura -y por tanto peso en Kb- puesto que peso en Kb veo según me dicen que no se puede hacer directamente sino que hay que tocar la altura y anchura)???

graciasss
  #14 (permalink)  
Antiguo 04/07/2011, 17:29
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: rebajar el peso de una imagen en el servidor

Pues si tienes claro que no lo quieres hacer así entonces baja el peso pásalos a jpg, si no te es suficiente redimenciona. De todas formas si la quieres mostrar después mas grande hay propiedas como height y width en los img etc.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #15 (permalink)  
Antiguo 05/07/2011, 01:20
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: rebajar el peso de una imagen en el servidor

Vale entonces creo que tengo la solución.

Pongamos que un usuario quiere subir una foto de 600Kb de 400x400 pixels llamada imagen.jpg

1º) Le dejo que suba la foto tal cual imagen.jpg
2º) Mediante las funciones de que dispone php (imagecreatetruecolor, imagecopyresampled, imagejpg, ...) creo una versión en pequeño de 50x50 y la llamo imagen_small.jpg que pesará unos 35Kb por ejemplo y otra llamada imagen_normal.jpg que será de 200x200 y pesará pongamos 250Kb.
3º) Borro la original.
4º) Cuando se llama a la imagen llamo a imagen_small.jpg, menos en un apartado que muestro la imagen_normal.jpg

Qué os parece? Es eficiente la solución planteada?
  #16 (permalink)  
Antiguo 05/07/2011, 05:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: rebajar el peso de una imagen en el servidor

Trata estos ejemplos, http://www.forosdelweb.com/f68/aport...agenes-912637/ el ejemplo 5 es el que te indiqué.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #17 (permalink)  
Antiguo 05/07/2011, 07:30
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: rebajar el peso de una imagen en el servidor

gracias abimaelrc pero como te decía la idea es coger la original y subir dos versiones:

- una "normal", es decir coger la imagen original y redimensionarla hasta hacerla más pequeña (pero no thumbmail)

- otra tipo thumbmail de 50x50 pixels

por último borrar la original o directamente no subirla (no sé si se puede no subir ¿?)

por tanto, intuyo que en el aporte deberé usar el ejemplo número 4, no?
  #18 (permalink)  
Antiguo 05/07/2011, 08:12
Avatar de Melecio  
Fecha de Ingreso: julio-2011
Ubicación: Coahuila
Mensajes: 320
Antigüedad: 12 años, 9 meses
Puntos: 8
Respuesta: rebajar el peso de una imagen en el servidor

Bueno que tal a todos soy nuevo en esto yo hice una vez un codigo para esto
espero y te sirva de algo


<form action="cambiarfoto.php" method=POST enctype="multipart/form-data" name="formImagen" id="formImagen">
<span class="Estilo1 Estilo3 Estilo15 Estilo2 Estilo14">Ruta de la Imagen:</span> <span class="Estilo1 Estilo8">la imagen debe ser de menos de 4 mb, y solo jpg</span><br>
<input type="file" name="archivo">
<input type="submit" class="parabotones18pixel" value="Subir">
</form>




<?php
@$archivo = $_FILES['archivo'];//para la ruta de la imagen
$nombrefile = $_FILES['archivo']['name'];//extraernombre por default
$rutatmp = $_FILES['archivo']['tmp_name'];//ruta y nombre temporal
$rutanueva = "RUTAIMAGEN/IMAGEN.jpg"; //ruta nueva

if(is_uploaded_file($rutatmp)) {
if(copy($rutatmp, $rutanueva)){

echo "Se ha guardado correctamente,de click en actualizar mi imagen ";
//---------------------------------------------------------------------------------------------
$img_origen = imagecreatefromjpeg( $rutanueva );
$ancho_origen = imagesx( $img_origen );
$alto_origen = 3000;//TAMAÑO DESEADO A REDUCIR
$ancho_limite=2000;//TAMAÑO DESEADO A REDUCIR
if($ancho_origen>$alto_origen){

$ancho_origen=$ancho_limite;
$alto_origen=$ancho_limite*imagesy( $img_origen )/imagesx( $img_origen );

}else{
$alto_origen=$ancho_limite;
$ancho_origen=$ancho_limite*imagesx( $img_origen )/imagesy( $img_origen );
}
$img_destino = imagecreatetruecolor($ancho_origen ,$alto_origen );
imagecopyresized( $img_destino, $img_origen, 0, 0, 0, 0, $ancho_origen, $alto_origen, imagesx( $img_origen ), imagesy( $img_origen ) );
imagejpeg( $img_destino, $rutanueva );
echo " la imagen se redujo correctamente o";
//--------------------------------------------------------------------------------------------------------

} else {
echo "No se ha podido subir la imagen debe de ser jpg intentelo otravez";
}
} else {
echo " primero Selecione imagen a subir despues de click en subir y despues en Actualizar mi imagen";
}


?>

Última edición por Melecio; 05/07/2011 a las 08:17 Razón: me faltaron codigos
  #19 (permalink)  
Antiguo 05/07/2011, 11:40
Avatar de Ximenitaa  
Fecha de Ingreso: abril-2011
Ubicación: Mexico
Mensajes: 208
Antigüedad: 13 años
Puntos: 43
Respuesta: rebajar el peso de una imagen en el servidor

Hola !!!

Encontre algo en la web referente a lo que buscas =/ creo jeje ..... lo vi y me acorde que habia un tema en foros parecido .........

http://objetivophp.com/?cat=104&paged=3

ojala te sirva de algo ......

Saludos !!




Saludos !!
__________________
❤(。◕‿◕)❤ . . . Ten un dia .... GeNiAl.... !!!! . . . ❤(◕‿◕。)❤

¿Que dia es hoy? . . . Hoy, hoy, es definitivamente un dia PERFECTO !!
  #20 (permalink)  
Antiguo 05/07/2011, 13:24
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: rebajar el peso de una imagen en el servidor

con la clase que te da abimaelrc es siemple es algo asi

http://www.forosdelweb.com/f68/aport...agenes-912637/

include('resizePicture.php');
$image = new ResizePicture('img.jpg');
$image->resize(200,200);
$image->save(grande.jpg);

$image->resize(120,120);
$image->save(media.jpg);

$image->resize(50,50);
$image->save(mini.jpg);
__________________
aconcaguaestudio.com
  #21 (permalink)  
Antiguo 11/07/2011, 15:57
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: rebajar el peso de una imagen en el servidor

Cita:
Iniciado por abimaelrc Ver Mensaje
Una imagen, por ejemplo jpg está comprimida ya, no se puede bajar más peso a menos que cambies el tamaño original.
amm.. disculpa pero eso es erroneo.... una imagen png.. no está necesariamente comprimida... y si se puede... reducir el tamaño como el peso...
incluso puedes conservar el tamaño reduciendo el peso..
eso se logra manipulando el DPI de una imagen... obviamente.. esto implica perdida de calidad en la imagen depende del proceso al que se exponga dicha imagen...

lo que no sabemos... o almenos yo no sé aún.. es como hacer eso mediante PHP... :)

SALUDOS !!
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!
  #22 (permalink)  
Antiguo 11/07/2011, 16:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: rebajar el peso de una imagen en el servidor

No leiste todo el mensaje, indiqué un jpg, no dije sobre un png Eso es cierto que con el dpi se pierde peso, ¿pero te haz fijado en el tamaño de la imagen también?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #23 (permalink)  
Antiguo 11/07/2011, 17:52
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: rebajar el peso de una imagen en el servidor

png, jpg, bmp, gif... toda imagen trabaja sobre DPI... la modificacion...del DPI...
puede no influir en el tamaño de imágen... puedes tener una imagen de
2000px x 1350px con un peso de 40 kb...
y puedes tener esa misma imagen con un peso de 12kb... modificando el DPI...
influye solo la calidad si la imagen conserva sus dimensiones..
o viceversa.....

el tamaño es dependiendo del manejo que queiras hacer a las imagenes..

así que no comprendo tu pregunta


¿pero te haz fijado en el tamaño de la imagen también?
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!
  #24 (permalink)  
Antiguo 11/07/2011, 18:00
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: rebajar el peso de una imagen en el servidor

Perdón por la intromisión, pero cambiando el nivel de compresión de una imagen .jpg es posible cambiar su peso en bytes, sin variar su tamaño en pixeles. Desde luego, puede llegar a perderse calidad, aunque hay muchos programas que hacen esta compresión y la diferencia es prácticamente imperceptible, así que de poder reducir el peso de un .jpg, se puede, aunque ésto se haga con programas como irfanview o especializados como corel, gimp etc.

Ahora bien, la librería GD no hace milagros y llegado a cierto punto no mejora el peso de la imagen pero sí empeora la calidad, por lo que habría que considerar de qué fuente proviene la imagen, para saber si se aplica dicha compresión.

Yo en lo particular hago lo siguiente:
Admito que suban el archivo (hasta cierta cantidad de MB), y realizo una copia en pequeño de 100px, que es la que muestro en todas las aplicaciones hasta el momento en que se tenga que descargar o agregar a un reporte dicha imagen, entonces cargo la original.

Respecto a la pregunta de obtener la imagen reducida sin subirla, considerando que php corre del lado del servidor, pues...
  #25 (permalink)  
Antiguo 11/07/2011, 18:18
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: rebajar el peso de una imagen en el servidor

ocp001a tu idea tal vez aplique en otros casos, pero no creo que le sea de mucha utilidad a humanista por que lo que entendí es que, quiere reducir el espacio de de uso en disco... por lo que tratar la imagen original y sacarle una copia, aumentaria considerablemente el uso en disco....

en ese caso yo pienso que seria mejor trabajar con la imagen original y trabajar unicamente con las dimensiones... asi no pierdes calidad... y por lo menos el espacio en disco no aumenta...

pero bien... solo fué un comentario mio.. espero no te enoje..

SALUDOS !!!
:)
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!
  #26 (permalink)  
Antiguo 11/07/2011, 18:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: rebajar el peso de una imagen en el servidor

Bueno lo más probable que me equivoque, pero yo he hecho cambios de 300 dpi a 72 dpi y siempre me baja el tamaño de la imagen. Lo he hecho con photoshop, no sé si hay alguna forma de lograr con photoshop que no aumente el tamaño y solo los dpi, pero es lo que he visto que hace. Por eso mi comentario.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #27 (permalink)  
Antiguo 11/07/2011, 18:26
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: rebajar el peso de una imagen en el servidor

en efecto abimaelrc cuando reduces los DPI reduces el peso del archivo y por consecuencia su calidad...
para ese tipo de trabajos considero que es mas útil el Fireworks.. ahora no eh probado
conservar DPI disminuyendo tamaño... aunque suena algo ilógico jeje.. pero habria que proar para saber..
pero en cualquier caso.. no es la solucion.. pues la pregunta de este post requiere un proceso automatizado con programación jeje.. :)
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!

Etiquetas: peso, servidor
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 05:15.