Foros del Web » Programando para Internet » PHP »

¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas?

Estas en el tema de ¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas? en el foro de PHP en Foros del Web. Hola Me he planteado mostrar los thumbails de cientos de imágenes mediante un script php que valdría para redimensionarlas y mostrarlas en el tamaño deseado. ...
  #1 (permalink)  
Antiguo 11/02/2009, 12:46
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
De acuerdo ¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas?

Hola

Me he planteado mostrar los thumbails de cientos de imágenes mediante un script php que valdría para redimensionarlas y mostrarlas en el tamaño deseado. Pero no estoy muy convencido aún de su uso...

He de decir que la página donde se mostrarán contendrá en una misma página alrededor de 60 o 70 imágenes thumbails a través de las cuales podrá acceder a la imagen ampliada y otro tipo de información que no viene al caso.

Como con el procedimiento que sigo actualmente al realizar una actualización del contenido de la web en imágenes tengo que crear yo mismo los thumbails mediante photoshop(de una sola tirada, claro, por carpeta, pero quita tiempo y es costoso renombrarlas), me preguntaba si tal vez saldría más rentable crear los thumbails desde un script php.

Pero me cuestiono si tal vez crear 60 o 70 imágenes mediante un script de golpe puede crear lentitud de carga en la página o bien comer transferencia de algún modo.

El script en cuestión sería de un usuario del foro, linkito:

Llamada a la imagen con la configuración deseada:
Código PHP:
<img src="img.php?imagen=rutadelaimagen&w=60&h=60" width="60" height="60" border="0" alt="" /> 
Script php
Código PHP:
// IMG redimensionador (Héctor S. > [email protected])
//////////////////////////////////////////////////////////////////////////

if(file_exists($_GET["imagen"])){
$fotoperf $_GET["imagen"];
header("Content-type: image/jpeg");
$fileextsp split("/",$fotoperf);
$count count($fileextsp) - 1;
$nomarch $fileextsp[$count];
$fileext2 pathinfo($nomarch);
$formatperf strtolower($fileext2["extension"]);
$getsizesperf getimagesize($fotoperf);
$widthf $_GET["w"];
if(
$_GET["h"] == ""){
$h2 $widthf $getsizesperf[1];
$h2 $h2 $getsizesperf[0];
$heightf $h2;
}else{
$heightf $_GET["h"];
}
if(
$formatperf == "jpg" || $formatperf == "jpeg"){ $imgperf imagecreatefromjpeg($fotoperf); }
if(
$formatperf == "gif"){ $imgperf imagecreatefromgif($fotoperf); }
if(
$formatperf == "png"){ $imgperf imagecreatefrompng($fotoperf); }
if(
$formatperf == "bmp"){ $imgperf imagecreatefrombmp($fotoperf); }


if(
$getsizesperf[1] > $getsizesperf[0]){
$newheightperf $widthf $getsizesperf[1];
$newheightperf $newheightperf $getsizesperf[0];
$newwidthperf $widthf;
if(
$newheightperf $heightf){
$newwidthperf $heightf $getsizesperf[0];
$newwidthperf $newwidthperf $getsizesperf[1];
$newheightperf $heightf;
}
}else{
$newwidthperf $heightf $getsizesperf[0];
$newwidthperf $newwidthperf $getsizesperf[1];
$newheightperf $heightf;
if(
$newwidthperf $widthf){
$newheightperf $widthf $getsizesperf[1];
$newheightperf $newheightperf $getsizesperf[0];
$newwidthperf $widthf;
}
}

$thumbperf imagecreatetruecolor($newwidthperf$newheightperf);
imagecopyresampled($thumbperf$imgperf0000$newwidthperf$newheightperf$getsizesperf[0], $getsizesperf[1]);

if(
$newwidthperf == $widthf){
$x1 0;
$x2 $widthf;
}else{
$sobraw $newwidthperf $widthf;
$mitadw floor($sobraw 2);
$x1 $mitadw;
$x2 $mitadw $widthf;
}
if(
$newheightperf == $heightf){
$y1 0;
$y2 $heightf;
}else{
$sobrah $newheightperf $heightf;
$mitadh floor($sobrah 2);
$y1 $mitadh;
$y2 $mitadh $heighf;
}

$fpperf imagecreatetruecolor ($widthf$heightf);

imagecopy($fpperf$thumbperf00$x1$y1$widthf$heightf);
imagejpeg($fpperf,"",100);
imagedestroy($fpperf);


Por cierto, si conocéis o se os ocurre algún otro procedimiento para crear thumbails tras subir las imágenes mediante FTP a la página, no dudéis en comentarlo.

Gracias de antemano.

Última edición por IMAC/; 11/02/2009 a las 13:07
  #2 (permalink)  
Antiguo 11/02/2009, 12:55
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: ¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas?

Quieres usar php para crear imagenes (thumbnails)???
Seria mucha carga para el servidor.
Te recomiendo usar el programa "Arles Image Web Page Creator"
Entre varias de sus funciones es capaz de crear thumbs de imagenes de una carpeta dandole las dimensiones q tu quieras, entre otras cosas.
  #3 (permalink)  
Antiguo 11/02/2009, 13:04
 
Fecha de Ingreso: diciembre-2005
Ubicación: Vigo
Mensajes: 135
Antigüedad: 18 años, 4 meses
Puntos: 3
Respuesta: ¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas?

Todo va a depender de la cantidad de imagenes que actualces a diario si solo ban a ser 70 al dia, puntualmente tendras mas carga en el servidor, pero desde luego te va aser muchisimo mas comodo que hacerlo con PhotoShop.
yo durante una temporada generaba masibamente un dia a la semana muchas imagens mas de 500 lo que me llebaba varias horas, pero el servidor en el que estaba alojada la web no era muy potente.

Un saludo.
  #4 (permalink)  
Antiguo 11/02/2009, 13:10
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Respuesta: ¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas?

Cita:
Iniciado por doylelives Ver Mensaje
Te recomiendo usar el programa "Arles Image Web Page Creator"
Entre varias de sus funciones es capaz de crear thumbs de imagenes de una carpeta dandole las dimensiones q tu quieras, entre otras cosas.
Me sería igual que el photoshop.
Lo más costoso es renombrarlas, que se me había olvidado mencionarlo.
Con php me ahorraría ese lio.

Cita:
Iniciado por subirol Ver Mensaje
Todo va a depender de la cantidad de imagenes que actualces a diario si solo ban a ser 70 al dia, puntualmente tendras mas carga en el servidor.
Pero será carga de procesamiento ¿no? No de datos.

¿Pero tardaría más en renderizarse la página de este modo?
  #5 (permalink)  
Antiguo 11/02/2009, 13:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas?

Es siempre más costoso (a nivel CPU) redimensionar on-the-fly o al vuelo, pero tiene la ventaja del ahorro de transferencia de datos.

Por otro lado lo mejor y que siempre se recomienda es guardar el thumbnail, en los hostings actuales no hay problemas de espacio por lo que si guardas el thumbnail ahorras en uso de CPU y aparte en la transferencia de datos.

Saludos
  #6 (permalink)  
Antiguo 11/02/2009, 13:33
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Respuesta: ¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas?

Cita:
Iniciado por GatorV Ver Mensaje
Es siempre más costoso (a nivel CPU) redimensionar on-the-fly o al vuelo, pero tiene la ventaja del ahorro de transferencia de datos.

Por otro lado lo mejor y que siempre se recomienda es guardar el thumbnail, en los hostings actuales no hay problemas de espacio por lo que si guardas el thumbnail ahorras en uso de CPU y aparte en la transferencia de datos.

Saludos
Muchas gracias como siempre GatorV ;)

De modo que insinuas que haciendo un script php que redimensione y guarde las imágenes en el lugar correspondiente con su nombre correspondiente y ejecutando ese script por cada actualización que haga, todo va viento en popa ¿no?

Muchas gracias por la idea, no se me había pasado por la cabeza ;)
  #7 (permalink)  
Antiguo 20/04/2009, 10:21
 
Fecha de Ingreso: noviembre-2006
Mensajes: 17
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: ¿Gasto de transferencia redimensionar imagenes? ¿Lentitud en mostrarlas?

Imac si lo que quieres es hacer el proceso de redimension y guardarlo en una carpeta sin tener que usar el script que hice del img.php, te pego aquí un código que hice tambien para redimensionar imagenes bastante bueno (esta hecho solo para JPGs, pero si se modifica el final de la funcion y se hace un imageXXX se podrá usar para cualquier extension)

Código PHP:
function redimensionar($fotoperf$fileouto$formatperf$widthf$heightf 0){

$getsizesperf getimagesize($fotoperf);

if(
$formatperf == "jpg" || $formatperf == "jpeg"){ $imgperf imagecreatefromjpeg($fotoperf); }
if(
$formatperf == "gif"){ $imgperf imagecreatefromgif($fotoperf); }
if(
$formatperf == "png"){ $imgperf imagecreatefrompng($fotoperf); }
if(
$formatperf == "bmp"){ $imgperf imagecreatefrombmp($fotoperf); }

if(
$heightf == 0){
    
list(
$width$height) = getimagesize($fotoperf);
$newheightperf $widthf $height;
$newheightperf $newheightperf $width;
$newwidthperf $widthf;

}else{
    
if(
$getsizesperf[1] > $getsizesperf[0]){
$newheightperf $widthf $getsizesperf[1];
$newheightperf $newheightperf $getsizesperf[0];
$newwidthperf $widthf;
if(
$newheightperf $heightf){
$newwidthperf $heightf $getsizesperf[0];
$newwidthperf $newwidthperf $getsizesperf[1];
$newheightperf $heightf;
}
}else{
$newwidthperf $heightf $getsizesperf[0];
$newwidthperf $newwidthperf $getsizesperf[1];
$newheightperf $heightf;
if(
$newwidthperf $widthf){
$newheightperf $widthf $getsizesperf[1];
$newheightperf $newheightperf $getsizesperf[0];
$newwidthperf $widthf;
}
}

}
// fin comprobacion heightf

$thumbperf imagecreatetruecolor($newwidthperf$newheightperf);
imagecopyresampled($thumbperf$imgperf0000$newwidthperf$newheightperf$getsizesperf[0], $getsizesperf[1]);

if(
$heightf != 0){
if(
$newwidthperf == $widthf){
$x1 0$x2 $widthf;
}else{
$sobraw $newwidthperf $widthf$mitadw floor($sobraw 2);
$x1 $mitadw$x2 $mitadw $widthf;
}
if(
$newheightperf == $heightf){
$y1 0$y2 $heightf;
}else{
$sobrah $newheightperf $heightf$mitadh floor($sobrah 2);
$y1 $mitadh$y2 $mitadh $heighf;
}

$fpperf imagecreatetruecolor ($widthf$heightf);
imagecopy($fpperf$thumbperf00$x1$y1$widthf$heightf);
imagejpeg($fpperf$fileouto100);
}else{
imagejpeg($thumbperf$fileouto100);
}

@
chmod($fileouto,0644);


Parecera un lio de variables, y puede ser ya que lo hice hace 1 año o asi jeje. Te c omento:

Código PHP:
function redimensionar($fotoperf$fileouto$formatperf$widthf$heightf 0
La variable $fotoperf es la variable que contiene la imagen a subir, o procesar (puede ser de alguna que este ya en el FTP).
La variable $fileouto es la variable donde se alojará la imagen
La variable $formatperf es el formato de la imagen a subir
La variable $widthf es el ancho al que quieres redimensionar la imagen
La variable $heightf es opcional, ya que si no la rellenas, la imagen se redimensionará al ancho que pusiste anteriormente y el alto, será proporcional a dicho ancho. Si especificas un alto en esta variable, se redimensionará proporcionalmente al ancho o alto que esté más cerca de los tamaños a los que queremos redimensionar, y se cogerá la parte central de esta redimension en caso de que sobre algunos pixeles de ancho o alto.

Como ya dije en el de img, es mejor que lo probéis y así veréis bien como funciona ;)

Saludos!!
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 16:40.