function image_resize($newWidth, $targetFile, $originalFile) {


  $info = getimagesize($originalFile);


  $mime = $info['mime'];





  switch ($mime) {


    case 'image/jpeg':


      $image_create_func = 'imagecreatefromjpeg';


      $image_save_func = 'imagejpeg';


      $new_image_ext = 'jpg';


      break;





    case 'image/png':


      $image_create_func = 'imagecreatefrompng';


      $image_save_func = 'imagepng';


      $new_image_ext = 'png';


      break;





    case 'image/gif':


      $image_create_func = 'imagecreatefromgif';


      $image_save_func = 'imagegif';


      $new_image_ext = 'gif';


      break;





    default: 


      throw new Exception('Unknown image type.');


  }





  $img = $image_create_func($originalFile);


  list($width, $height) = getimagesize($originalFile);


  $newHeight = ($height / $width) * $newWidth;


  $tmp = imagecreatetruecolor($newWidth, $newHeight);


  imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);


  if (file_exists($targetFile)) {


    unlink($targetFile);


  }


  $image_save_func($tmp, "$targetFile");


}