class.upload.php is a powerful and mature PHP class to manage uploaded files, and manipulate images in many ways. The script is available under a GPL license.
more info about the class
$handle->image_rotate = '90'; $handle->file_overwrite = true; $handle->process('images/small');
You have to quote the file path in the process method. Not intuitive, as the class already knows the full path from when it is instantiated.