Sembra funzionare alla grandissima, grazie! Solo una cosa, se la foto è più piccola delle dimensioni impostate, la miniatura non viene creata, si potrebbe fare qualche cosa, tipo un ingrandimento? Probabilmente non capiterà mai però se la cosa si può prevedere con poco codice...

Ora il codice è il seguente,
Codice PHP:
<?php 
function makeThumb($dir,$pic,$n,$t){ 
  list(
$width$height$type$attr) = getimagesize($pic); 
  
$max_w 300
  
$max_h 100

  
// area utile e offset 
  
if ($width>$height*$max_w/$max_h) { 
    
$a_h $height
    
$a_w $a_h*$max_w/$max_h
    
$delta_x floor(($width-$a_w)/2);  
    
$delta_y 0
  }  
  else { 
    
$a_w $width
    
$a_h $a_w*$max_h/$max_w
    
$delta_x 0;  
    
$delta_y floor(($height-$a_h)/2);  
  }

  
// verifico che l'immagine originale sia più grande delle dimensioni massime 100*100px 
  
if ($max_w<$width && $max_h<$height) { 

    
// creo una nuova immagine  
    
$thumb imagecreatetruecolor($max_w,$max_h); 
    if (
$t == 'image/jpeg'){$temp imagecreatefromjpeg($pic);} 
    elseif (
$t == 'image/gif'){$temp imagecreatefromgif($pic);} 
    elseif (
$t == 'image/png'){$temp imagecreatefrompng($pic);} 

    
// ridimensiono l'originale e salvo nella cartella di destinazione 
    
imagecopyresampled($thumb,$temp,0,0,$delta_x,$delta_y,$max_w,$max_h,$a_w,$a_h); 
    if (
$t == 'image/jpeg'){imagejpeg($thumb,"$dir/tb_".$n75);} 
    elseif (
$t == 'image/gif'){imagegif($thumb,"$dir/tb_".$n);} 
    elseif (
$t == 'image/png'){imagepng($thumb,"$dir/tb_".$n);} 
  } 

?>
è esatto oppure ho lasciato parte del tuo precedente codice che non occorre più con la tua ultima implementazione postata a parte?