salve ho un'"issue" riguardo alla funzione Imagecopyresize

mi spiego se tengo fisse le coordinate delle immagine che voglio ridimennsionare, l'immagine viene creata coretamente 120x90,(parlo di creazione thumbs) e viene visualizzata sul web alle dimensioni richieste
ecco lo script

list($width, $height, $type, $attr) = getimagesize($_SERVER['DOCUMENT_ROOT'].'public/foto/'.$ultimo_id.'.jpg');

// Creo la versione 120*90 dell'immagine (thumbnail)
$thumb = imagecreatetruecolor(120, 90);

$source = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].'public/foto/'.$ultimo_id.'.jpg');
imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height);


// Salvo l'immagine ridimensionata
imagejpeg($thumb, $_SERVER['DOCUMENT_ROOT']."public/foto/thumbnail/".$ultimo_id."_thumb.jpg", 75);

Il problema si presenta quando devo usare uno script col calcolo perché se inserisco immagini verticali, queste vengono visualizzate male. dimensioni sbagliate e qualità molto pessima (nemmeno paragonalbile a quelle dello script con dimensioni fisse di cui sopra. ecco loscript a dimensione variabile che permette d i fissare l'altezza a 100 e calcola automaticamente la larghezza:

$imagehw=(list($width, $height,$attr,$type) = getimagesize("public/foto/".$ultimo_id.".jpg"));
$height = 100;
$width = (int)(($imagehw[0]*100)/$imagehw[1]);
$thumb = imagecreatetruecolor($width,$height);
$source = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].'public/foto/'.$ultimo_id.'.jpg');
imagecopyresized($thumb, $source,0,0,0,0, $width, $height,$imagehw[0], $imagehw[1]);
imagejpeg($thumb, $_SERVER['DOCUMENT_ROOT'].'public/foto/thumbnail/'.$ultimo_id.'_thumb.jpg',100);


Non capisco il motivo. Ho studiato tutto il studiabile, tutte le funzioni, guardato esempi, riprovato mille voilte ma non VEDO ASSOLUTAMENTEerrori nello scirpt e non capisco assolutamente xché mi vengono visualizz. thumbs piu alte di 100 pixel e con una qualità scadente(pessima direi)

io so che la funzione getimagesize crea un array e quindi la prima

* è l'latezza e la seconda [1]

la lunghezza..!
grazie mille. per aiuto, in anticipo se volte mi fate un grande favore, è una settimana c eh ci sto su

bye