Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/09/2007, 04:20
Avatar de Spydis
Spydis
 
Fecha de Ingreso: mayo-2003
Ubicación: Donosti
Mensajes: 90
Antigüedad: 21 años
Puntos: 1
Pregunta Problema thumbnails con GD "on the fly"

Bueno empleo unas funciones para que me cree los thumbnails de un directorio en determinado y de forma automática. Funciona bien en localhost, pero al subirlo al servidor solo se me muestran 3 o 4 thumbs en el caso de que haya 20 o mas wallpapers (Si hay menos de 10 funciona perfectamente). Mi pregunta es si puede ser algun problema de buffer o de cache, me refiero a si tiene un tamaño maximo php para manipular las imagenes, eso o tengo algun problema en el archivo.
El tamaño de los wallpapers ronda entre 1 y 3 mb y los thumbs entre 5 y 11 kbs.

Código de walls.php:
Código PHP:
<?php
function tiny($d$archivo){
$original imagecreatefromjpeg("$d/$archivo");

/* Hallamos la anchura y altura de la imagen original */
$ancho imagesx($original);
$alto imagesy($original);

/* Especificamos el thumb */
$anchomini=142;
$altomini=107;


/* Dimensionamos la miniatura */
$thumb imagecreatetruecolor($anchomini,$altomini); 

/* Se obtiene por interpolación la miniatura en memoria */
imagecopyresampled($thumb,$original,0,0,0,0,$anchomini,$altomini,$ancho,$alto);
    
    if(!
is_dir("$d/thumbs"))    {
          
mkdir("$d/thumbs",0777);
        }
/* Guardamos la miniatura en un fichero con formato JPEG y un ratio de compresión de 90% */
imagejpeg($thumb,"$d/thumbs/tn_$archivo",90); 
}

function 
gallery($fotos) { 
    
$i 0
    if (
is_dir($fotos)) {
       if (
$handle opendir($fotos)) {
        
              echo 
"<table align='center' width='285' border='0' cellspacing='2' cellpadding='0'><tr>";
         while ((
$archivo readdir($handle)) !== false) {    
                 
//falta validar extensiones              
             
if(!(is_dir($archivo)OR($archivo=="thumbs")OR($archivo=="Thumbs.db"))) {                
                      if(!
file_exists("$fotos/thumbs/tn_$archivo")){                                
                        
tiny($fotos,$archivo);
                    }
                  
//muestra thumbs    
                  
$j=($i%2);
                  if(
$j==0){                        
                        echo 
"</tr><tr>";
                  }

                    echo 
'<td><a href="'.$fotos.'/'.$archivo.'" target="_blank"><img src="'.$fotos.'/thumbs/tn_'.$archivo.'" border="1"/></a></td>';

                    
$i++;
                  }
          }
          echo 
"</tr></table><div align='center'>&lt;&lt; <a href='javascript:history.back()'>Volver</a> &gt;&gt; </div>";

         
closedir($fotos);
        }
      }  
}
?>
Después pongo esto para que me haga las imagenes dependiendo del id pedido por el navegador:
Código PHP:
gallery($_GET['id']); 
Alguna idea de porque no puede funcionar con muchos archivos en el directorio? Hay un máximo de peso por cada uno?