Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2007, 12:56
War77
 
Fecha de Ingreso: marzo-2002
Mensajes: 338
Antigüedad: 24 años, 7 meses
Puntos: 0
Ayuda con codigo de Galeria de Imagenes

Hola, acabo de ver este codigo para una galerias de imagenes y funciona perfecto. Necesito ayuda con la creacion de thumbnails, ahora si las imagenes tienen distinto tamaño al crear los thumbnails no respeta el tamaño, osea que las reduce a escala, como puedo hacer para que corte las imaganes y las cree en el tamaño especificado?

Código PHP:
 $columns     = 5;
 
$thmb_width  = 150;
 
$thmb_height = 200;

function 
resizeImage($originalImage,$toWidth,$toHeight){
    
    
// Get the original geometry and calculate scales
    
list($width, $height) = getimagesize($originalImage);
    
$xscale=$width/$toWidth;
    
$yscale=$height/$toHeight;
    
    
// Recalculate new size with default ratio
    
if ($yscale>$xscale){
        
$new_width = round($width * (1/$yscale));
        
$new_height = round($height * (1/$yscale));
    }
    else {
        
$new_width = round($width * (1/$xscale));
        
$new_height = round($height * (1/$xscale));
    }
    
// Resize the original image
    
$imageResized = imagecreatetruecolor($new_width, $new_height);
    
$imageTmp     = imagecreatefromjpeg ($originalImage);
    
imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    return 
$imageResized;
} 

function 
generateThumbnails(){
        global 
$thmb_width,$thmb_height;
        
        
// Open the actual directory
        
if ($handle = opendir(".")) {
                
// Read all file from the actual directory
                
while ($file = readdir($handle))  {
                        
// Check whether tha actual item is a valid file
                        
if (is_file($file)){
                                
// Check whether the actual image is a thumbnail
                              
if (strpos($file,'_th.jpg')){
                                      
$isThumb = true;
                              } else {
                                      
$isThumb = false;
                              }
                      
                              if (!
$isThumb) {
                                      
// Process the file string
                                      
$dirName  = substr($file,0,strpos($file,basename($file)));
                                      if (
strlen($dirName) < 1) $dirName = '.';
                                      
$fileName = basename($file);
                                      
$fileMain = substr($fileName,0,strrpos($fileName,'.'));
                                      
$extName  = substr($fileName,strrpos($fileName,'.'),
                                                                              
strlen($fileName)-strrpos($fileName,'.'));
                                          
                                      
// Check if the actual file is a jpeg image
                                      
if (($extName == '.jpg') || ($extName == '.jpeg')){
                                            
$thmbFile = $dirName.'/'.$fileMain.'_th.jpg';
                                            
// If a thumbnail dosn't exists tahn create a new one
                                            
if (!file_exists($thmbFile)){
                                                    
imagejpeg(resizeImage($file,$thmb_width,$thmb_height),$thmbFile,80);
                                            }
                                        }
                              } 
                           }
                   }
        }
        
}

function 
getNormalImage($file){
        
$base = substr($file,0,strrpos($file,'_th.jpg'));
        if (
file_exists($base.'.jpg')) return $base.'.jpg';
        elseif (
file_exists($base.'.jpeg')) return $base.'.jpeg';
        else return 
"";
}

function 
displayPhotos(){
        global 
$columns;
        
        
generateThumbnails();
        
$act = 0;
        
// Open the actual directory
        
if ($handle = opendir(".")) {
                
// Read all file from the actual directory
                
while ($file = readdir($handle))  {
                        
// Check whether tha actual item is a valid file
                        
if (is_file($file)){
                                
// Check whether the actual image is a thumbnail
                              
if (strpos($file,'_th.jpg')){
                                        ++
$act;
                                        if (
$act > $columns) {
                                                echo 
'</tr><tr><td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';        
                                                
$act = 1;
                                        } else {
                                                echo 
'<td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';        
                                        }
                                      
                              }
                      }
                }
        }        
} 
Gracias