riporto il codice direttamente da php.net/imagecopyresampled

Codice PHP:
$image_p imagecreatetruecolor($new_width$new_height);
$image imagecreatefromjpeg($filename);
imagecopyresampled($image_p$image0000$new_width$new_height$width$height); 
le due variabili $image e $image_p sono create con le funzioni imagecreate... che restituiscono ambedue due resource a due immagini mappate in memoria (la prima vuota e la seconda il file che vuoi rimpicciolire)

a mio avviso è meglio se leggi meglio la guida della funzione al link sopra citato oppure se prendi una guida direttamente sulle gd, cosi farai meno fatica a cominciare quell'argomento (o al max prendi direttamente lo script di quella pagina e lo modifichi )