U can try using Image Magician script with it u can crop, resize, add watermark, border and do other stuffs as well. Here is the link http://phpimagemagician.jarrodoberto.com/
Sample usage:
include_once ('.../php_image_magician.php');
$path = "your/media_media_upload_directory/";
$destination = "your_thumbnails/media_upload/directory/";
if(move_uploaded_file($tmp, $path.$actual_image_name)) {
$magicianObj = new imageLib($path.$actual_image_name);
$magicianObj -> resizeImage(630, 600, 'landscape');
$magicianObj -> addWatermark('your/watermark/folder/watermark.png', 'l', 5);
$magicianObj -> saveImage($path.$actual_image_name, 70);
$magicianObj -> reset();
$magicianObj -> resizeImage(300, 300, 'crop-tl', true);
$magicianObj -> saveImage($destination.$actual_image_name);
}
With this example after the file has been moved from tmp folder to media folder I'm resizing it, adding the watermark and then croping for thumbnail, at the saveImage action you have the option to reduce the quality from 100 to whatever you want, at the example the quality is 70.