Pues yo por ejemplo ocupo crear imagenes mas pequeñas que las que subo y necesito que no sean mayores de 150px de alto ni de ancho y uso esto
   Código PHP:
    $tmp = imagecreatefromjpeg($upload);     
if ($tmp){            
    $ow = imagesx($tmp);// Ancho Original de la imagen
    $oh = imagesy($tmp);// Alto Original de la imagen
    $proporcion = $oh/$ow;
    if ($ow > $oh){
        $small_w = 150;
        $small_h = 150 * $proporcion;
    }elseif ($ow < $oh){
        $small_w = 150/$proporcion;
        $small_h = 150;
    }elseif ($ow == $oh){
        $small_w = 150;
        $small_h = 150;
    } 
    
  $small_w = el ancho de la miniatura
$small_h = el alto de la miniatura  
Modificandolo un poco lo adaptas a tus necesidades. 
Salu2  
