Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2007, 12:56
War77
 
Fecha de Ingreso: marzo-2002
Mensajes: 338
Antigüedad: 22 años, 1 mes
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$imageTmp0000$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