Si, ti posto una mia funzione

Codice PHP:
function resize($name,$cartella)
{    
    
$larghezza_thumb 153;
    
$altezza_thumb 153;
    
ini_set('memory_limit''128M');
    
$originale $cartella.$name;
    
$immagine imagecreatefromjpeg($originale);
    
$larghezza imagesx($immagine);
    
$altezza imagesy($immagine);
    
$scala min($larghezza_thumb/$larghezza$altezza_thumb/$altezza);
    if (
$scala 1)
    {
        
$nuova_larghezza floor($scala*$larghezza);
        
$nuova_altezza floor($scala*$altezza);
        
$immagine_temporanea imagecreatetruecolor($nuova_larghezza$nuova_altezza);
        
imagecopyresized($immagine_temporanea$immagine,0,0,0,0,
        
$nuova_larghezza$nuova_altezza$larghezza$altezza);
        
imagedestroy($immagine);
        
$immagine $immagine_temporanea;
    }
    
imagejpeg($immagine$cartella."thumb/$name"90);
}

resize('prova.jpg','immagini/'); 
PS: questa funzione è SOLO per immagini JPG

per gli altri tipi di immagini, basta cambiare il 'imagecreatefromjpeg' rispettivamente in:

imagecreatefrompng per .png

imagecreatefromwbmp per .bmp

imagecreatefromgif per .gif

stessa cosa per la funzione imagejpeg, che diventa:

imagepng per .png

imagewbmp per .bmp

imagegif per .gif