Ciao, io in passato ho creato ed usato questa funzione; è diversa come impostazione dalla tua; te la mostro e poi ti spiego:

Codice PHP:
function pvt_create_thumbnail($album_path$img) {
    
// Original image information
    
list($width$height$type$attr) = 
        
getimagesize($album_path.'/images/'.$img);
    
// Creo la versione 87*65 dell'immagine
    
$thumb imagecreatetruecolor(8765);
    
$source imagecreatefromjpeg($album_path.'/images/'.$img);
    
imagecopyresized($thumb$source00008765$width$height);
    
// Salvo l'immagine ridimensionata
    
imagejpeg($thumb$album_path.'/thumbs/'.$img75);
    
chmod($album_path.'/thumbs/'.$img0766);

Premessa: l'ho usata per la creazione di una galleria fotografica, quindi forse dovrai riaddattarla: cmq passo a spiegarti cosa fa. Allora: alla funzione passo il path dell'album (nel mio caso /gallery/album_di_prova/) ed il nome dell'immagine (img.jpg). Ora io mi sono organizzato in questo modo nella gerarchia delle cartelle: /gallery/album_di_prova/ aveva 2 sottocartelle, images/ (che contiene le immagini in dimensioni normali - che per come ho implementato la mia galleria erano tutte 640x480 se non ricordo male -) e thumbs/ (che contiene tutte le thumb); suppongo di avere img.jpg disponibile nella sottocartella images/. Quindi prendo l'immagine con list(...), ne creo la versione piccola con $thumbs = imagecreatetruecolor(...) e la ridimensiono con imagecopyresized(...). Infine la salvo nella sottocartella thumbs/ con imagejpeg(...) e ne cambio i permessi per la lettura con chmod(...). Tutto qua spero di essere stato chiaro e soprattutto utile


Gab