Yep, it is something that falls into the image manipulation functions of PHP, I suggest you RTFM on the image functions, specifically on getimagesize(), imagecopyresized(), and imagecreate(). Basically, you take the upload, get its current size and type from getimagesize, decide on the new size you want it to be, imagecreate a new image in that size, and imagecopyresized the uploaded image onto the new image, and save it to the server. Alacazam.