// // UIImage+Utils.swift // WeScan // // Created by Bobo on 5/25/18. // Copyright © 2018 WeTransfer. All rights reserved. // import Foundation extension UIImage { /// Draws a new cropped and scaled (zoomed in) image. /// /// - Parameters: /// - point: The center of the new image. /// - scaleFactor: Factor by which the image should be zoomed in. /// - size: The size of the rect the image will be displayed in. /// - Returns: The scaled and cropped image. func scaledImage(atPoint point: CGPoint, scaleFactor: CGFloat, targetSize size: CGSize) -> UIImage? { guard let cgImage = self.cgImage else { return nil } let scaledSize = CGSize(width: size.width / scaleFactor, height: size.height / scaleFactor) guard let croppedImage = cgImage.cropping(to: CGRect(x: point.x - scaledSize.width / 2.0, y: point.y - scaledSize.height / 2.0, width: scaledSize.width, height: scaledSize.height)) else { return nil } return UIImage(cgImage: croppedImage) } }