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");

}