Need a function added to my script

I need to add a width setting to this script. What I need this to do is upload an image and resize with ‘exact’ dimensions. So some sort of crop function I guess is needed and I have no idea how to code that.
So to clarify…I need the image to be resized to exact width and height, and retain the aspect ratio.
Thanks to anyone willing to me help, I’m just trying to learn here.

<?php 
if(isset($_POST['Submit'])) 
 
{ 
$size = 300; // the thumbnail height 
 
$filedir = 'images/'; // the directory for the original image 
$thumbdir = 'images/'; // the directory for the thumbnail image 
$prefix = ''; // the prefix to be added to the original name 
 
$maxfile = '9000000'; 
$mode = '0666'; 
 
$userfile_name = $_FILES['image']['name']; 
$userfile_tmp = $_FILES['image']['tmp_name']; 
$userfile_size = $_FILES['image']['size']; 
$userfile_type = $_FILES['image']['type']; 
 
if (isset($_FILES['image']['name'])) 
{ 
$prod_img = $filedir.$userfile_name; 
 
$prod_img_thumb = $thumbdir.$prefix.$userfile_name; 
move_uploaded_file($userfile_tmp, $prod_img); 
chmod ($prod_img, octdec($mode)); 
 
$sizes = getimagesize($prod_img); 
 
$aspect_ratio = $sizes[1]/$sizes[0]; 
 
if ($sizes[1] <= $size) 
{ 
$new_width = $sizes[0]; 
$new_height = $sizes[1]; 
}else{ 
$new_height = $size; 
$new_width = abs($new_height/$aspect_ratio); 
} 
 
$destimg=ImageCreateTrueColor($new_width,$new_he
ight) or die('Problem In Creating image'); 
$srcimg=ImageCreateFromJPEG($prod_img) or die('Problem In opening Source Image'); 
ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_w
idth,$new_height,ImageSX($srcimg),ImageSY($srcimg)
) or die('Problem In resizing'); 
ImageJPEG($destimg,$prod_img_thumb,90) or die('Problem In saving'); 
imagedestroy($destimg); 
} 
 
echo ' 
<a href="'.$prod_img.'"> 
<img src="'.$prod_img_thumb.'" width="'.$new_width.'" height="'.$new_height.'"> 
</a>'; 
 
 
}else{ 
echo ' 
<form method="POST" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data"> 
<input type="file" name="image" size="50"><p> 
<input type="Submit" name="Submit" value="Upload Image"> 
</form>'; 
}