io definisco quanto deve essere la larghezza delle foto, in modo da avere uniformità.
fai conto:
Codice PHP:
$larghezza 450
poi faccio
Codice PHP:
list($width$height$type$attr) = getimagesize($uploadfile); //$uploadfile è il percorso del file compreso del nome del file
$source imagecreatefromjpeg($uploadfile);
$numero = ($larghezza/$width); // ottengo un numero tra 0 e 1, che dovrò usare nella riga sotto 

//creo un file delle dimensioni proporzionate, con larghezza  uguale a $width*$numero che già so che fa 450..
$thumb imagecreatetruecolor($width*$numero$height*$numero);
imagecopyresampled($thumb$source0000$width*$numero$height*$numero$width$height);
//salvo l'immagine. $path è il percorso + il nome della immagine
imagejpeg($thumb$path65); 
ovviamente faccio questa operazione per tutte le dimensioni che mi servono.. fai conto una miniatura di 200, quella di 450 e quella grande di 700..