Imas upotrebljivu klasu ImageResizeFactory na:
http://www.phpclasses.org/browse/file/5554.html
A mozes da probas i malo da promuvas gd, nije komplikovano. Evo ti jedna moja f-ja, koja radi resize na odredjeni width i cuva ratio:
function resizeJPG($jpgFile, $width)
{
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($jpgFile);
$height = (int) (($width / $width_orig) * $height_orig);
// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($jpgFile);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Output
imagejpeg($image_p, $jpgFile, 75);
}