Foros del Web » Programando para Internet » PHP »

Problema al redimensionar imagen

Estas en el tema de Problema al redimensionar imagen en el foro de PHP en Foros del Web. Buenas noches, tengo un código para redimensionar imágenes. Os lo pongo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php function redimensionar_imagen ( $nombreimg , $rutaimg , ...
  #1 (permalink)  
Antiguo 13/12/2017, 16:19
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Problema al redimensionar imagen

Buenas noches, tengo un código para redimensionar imágenes. Os lo pongo:

Código PHP:
Ver original
  1. <?php
  2. function redimensionar_imagen($nombreimg, $rutaimg, $xmax, $ymax){  
  3.         $ext = explode(".", $nombreimg);  
  4.         $ext = $ext[count($ext)-1];  
  5.      
  6.         if($ext == "jpg" || $ext == "jpeg")  
  7.             $imagen = imagecreatefromjpeg($rutaimg);  
  8.         elseif($ext == "png")  
  9.             $imagen = imagecreatefrompng($rutaimg);  
  10.         elseif($ext == "gif")  
  11.             $imagen = imagecreatefromgif($rutaimg);  
  12.          
  13.         $x = imagesx($imagen);  
  14.         $y = imagesy($imagen);  
  15.          
  16.         if($x <= $xmax && $y <= $ymax){
  17.             echo "<center>Esta imagen ya esta optimizada para los maximos que deseas.<center>";
  18.             return $imagen;  
  19.         }
  20.      
  21.         if($x >= $y) {  
  22.             $nuevax = $xmax;  
  23.             $nuevay = $nuevax * $y / $x;  
  24.         }  
  25.         else {  
  26.             $nuevay = $ymax;  
  27.             $nuevax = $x / $y * $nuevay;  
  28.         }  
  29.          
  30.         $img2 = imagecreatetruecolor($nuevax, $nuevay);  
  31.         imagecopyresized($img2, $imagen, 0, 0, 0, 0, floor($nuevax), floor($nuevay), $x, $y);  
  32.         echo "<center>La imagen se ha optimizado correctamente.</center>";
  33.         return $img2;  
  34.     }
  35.     $imagen_optimizada = redimensionar_imagen('20150214_160459.jpg','imagenes/20150214_160459.jpg',500,300);
  36.     imagejpeg($imagen_optimizada, "imagenes/20150214_160459.jpg");
  37. ?>

En teoría funciona perfectamente porque he comparado los tamaños de las imágenes antes y después y están cambiadas pero, y aquí biene lo bueno, en mi galería de imágenes sigue saliendo enorme. ¿Por qué?. Gracias.

Os pongo también el script de la galería:

Código HTML:
Ver original
  1. <div id="galeria" class="container-fluid">
  2.  
  3. <div id="container">
  4. <link rel="stylesheet" type="text/css" href="css/jquery.lightbox-0.5.css" />
  5. <link rel="stylesheet" type="text/css" href="css/demo.css" />
  6.  
  7. <div id="heading">
  8. <h1>Galer&iacute;a de fotos</h1>
  9. </div>

Código PHP:
Ver original
  1. <?php
  2. $directory = 'imagenes';
  3.  
  4.  
  5. ?>
Código HTML:
Ver original
  1. <div id="gallery">
  2. <div style="OVERFLOW: auto; HEIGHT: 380px">
Código PHP:
Ver original
  1. <?php
  2.  
  3. $allowed_types=array('jpg','jpeg','gif','png');
  4. $file_parts=array();
  5. $ext='';
  6. $title='';
  7. $i=0;
  8.  
  9. $dir_handle = @opendir($directory) or die("Hay un error con el directorio de im�genes!");
  10.  
  11. while ($file = readdir($dir_handle))
  12. {
  13.     if($file=='.' || $file == '..') continue;
  14.  
  15.     $file_parts = explode('.',$file);
  16.     $ext = strtolower(array_pop($file_parts));
  17.  
  18.     $title = implode('.',$file_parts);
  19.     $title = htmlspecialchars($title);
  20.  
  21.     $nomargin='';
  22.  
  23.     if(in_array($ext,$allowed_types))
  24.     {
  25.         if(($i+1)%3==0) $nomargin='nomargin';
  26.  
  27.         echo '
  28.         <div class="pic '.$nomargin.'" style="background:url('.$directory.'/'.$file.') no-repeat 50% 50%;">
  29.         <a href="'.$directory.'/'.$file.'" title="'.$title.'" target="_blank">'.$title.'</a>
  30.         </div>';
  31.  
  32.         $i++;
  33.     }
  34. }
  35.  
  36. closedir($dir_handle);
  37.  
  38. ?>
Código HTML:
Ver original
  1. </div>
  2. <div class="clear"></div>
  3. </div>
  4. </div>
  5. </div>
  #2 (permalink)  
Antiguo 15/12/2017, 03:40
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Problema al redimensionar imagen

Necesito respuestas. ¿Porqué al redimensionar la imagen, cuando la pincho para hacerla más grande me sale igual que antes de redimensionarla?. Tengo una foto que es más pequeña, 520 x 312, y esta sale más pequeña. No entiendo porque las que redimensiono, no. Gracias.
  #3 (permalink)  
Antiguo 15/12/2017, 16:26
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema al redimensionar imagen

¿Cuando se dice que sale igual de grande, se hace referencia a la parte visual?

Si es así, seguramente es porque a pesar que se modifica la imagen en cuanto al resize,
la galería igual despliega la nueva imagen con las dimensiones que se tienen configuradas en los estilos, imagino es eso.

¿O a que se hace referencia?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 16/12/2017, 01:50
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Problema al redimensionar imagen

No porque como ya he dicho antes, tengo una imagen sin redimensionar de 520 x 312 y esa no sale enorme. Las otras son de 1024 x 768 y lo que hice fue reducir el tamaño de una a 700 x 500, pero sale igual que antes. Gracias
  #5 (permalink)  
Antiguo 18/12/2017, 12:22
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Problema al redimensionar imagen

Cita:
Iniciado por sergiodueso Ver Mensaje
Necesito respuestas.
Se responde cuando se puede...


Si al revisar la imagen con un editor de imágenes (cualquiera) ésta cambió efectivamente de tamaño, puede ser tema de caché, sobre todo si la imagen conserva el mismo nombre, el navegador supone que es la misma imagen de antes y muestra su caché, no la imagen nueva (redimensionada).

Si es éste el caso, se puede solucionar agregando un parámetro al nombre de la imagen para que no sea cacheada, o bien para que sea recargada, por ejemplo src="imagen.jpg" si lo cambias a src="imagen.jpg?94959" el navegador entiende que debe recargar la imagen.
Este parámetro puede ser la fecha en que se cargó la imagen, por ejemplo.
  #6 (permalink)  
Antiguo 18/12/2017, 12:43
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Problema al redimensionar imagen

A ver si lo he entendido bien. Se solucionaría con cambiarle el nombre a la imagen después de redimensionarla?. También he visto una función que se llama clearstatcache. ¿Funcionaría también?

Última edición por sergiodueso; 18/12/2017 a las 13:19

Etiquetas: html, nombre, redimensionar
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 03:17.