Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/12/2017, 16:19
sergiodueso
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 14 años, 1 mes
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>