title: Swift 3: crop image
body: <p>I want to crop images from the center with a specific width and height. I found this code in a SO issue but this method resize the image then it crop it. I want to only get my image cropped and not resized. I tried modifying this code but I can't get the result that I want.</p>
  
  <pre><code>//cropImage
  func cropToBounds(image: UIImage, width: Double, height: Double) -&gt; UIImage {
  let contextImage: UIImage = UIImage(cgImage: image.cgImage!) 
  
  let contextSize: CGSize = contextImage.size
  var posX: CGFloat = 0.0
  var posY: CGFloat = 0.0
  var cgwidth: CGFloat = CGFloat(width)
  var cgheight: CGFloat = CGFloat(height)
  // See what size is longer and create the center off of that
  
  if contextSize.width &gt; contextSize.height {
      posX = ((contextSize.width - contextSize.height) / 2)
      posY = 0
      cgwidth = contextSize.height
      cgheight = contextSize.height
  } else {
      posX = 0
      posY = ((contextSize.height - contextSize.width) / 2)
      cgwidth = contextSize.width
      cgheight = contextSize.width
  }
  let rect: CGRect = CGRect(x: posX, y: posY, width: cgwidth, height: cgheight)
  // Create bitmap image from context using the rect
  let imageRef: CGImage = contextImage.cgImage!.cropping(to: rect)!
  
  // Create a new image based on the imageRef and rotate back to the original orientation
  let image: UIImage = UIImage(cgImage: imageRef, scale: image.scale, orientation: image.imageOrientation)
  
  return image
  } 
  </code></pre>
  
  <p>How can I do that?</p>