Código PHP:
$img_01 = $_FILES[img]['name'];
switch(true) { case ($img_01!=""):
ini_set('memory_limit', '128M');
$status = "";
$tamano = $_FILES[img]['size'];
$tipo = $_FILES[img]['type'];
$archivo = $_FILES[img]['name'];
$prefijo = substr(md5(uniqid(rand())),0,21);
#guardamos el archivo a la carpeta
($tipo == "image/jpeg" || $tipo == "image/pjpeg"|| $tipo == "image/jpg") or die (mysql_error());
$destino = "_temp/".$prefijo.".jpg";
(copy($_FILES[img]['tmp_name'],$destino)) or die (mysql_error());
$status = $prefijo.".jpg";
$prop = $propiedad;
#aca empieza el codigo de creacion de la Miniatura *************************************************************
list($ancho, $altura, $tipo, $atr) = getimagesize("_temp/$status");
$source=$destino; # archivo de origen
$dest="img/".$prefijo.".jpg"; #archivo de destino
$height_d=((600/$ancho)*$altura); #alto de salida
$width_d=600; # ancho de salida
list($width_s, $height_s, $type, $attr) = getimagesize($source, $info2); #obtengo información del archivo
$gd_s = imagecreatefromjpeg($source); #crea el recurso gd para el origen
$gd_d = imagecreatetruecolor($width_d, $height_d); #crea el recurso gd para la salida
imagecopyresampled($gd_d, $gd_s, 0, 0, 0, 0, $width_d, $height_d, $width_s, $height_s); #redimensiona
imagejpeg($gd_d, $dest); #graba
imagedestroy($gd_s); #libreo recursos
imagedestroy($gd_d);
unlink("_temp/$status");
Analiza un poco el código, tomate el trabajo, fijate que $status es el nombre de tu archivo sin la extención, y lo que hacemos colocamos la imegen original en una carpeta "_temp" y luego de alli recorta proporcionalmente y guarda en una carpeta llamada "img", son necesarias estas carpetas para que trabaje tu código, mete mano es sensillo pero intentalo comprender así sabes como aplicarlo mejor a tus necesidades.