¿Cómo seleccionar una parte de una image, recortarla y savela usando Swift?

Estoy tratando de crear una aplicación para iOS usando Swift para capturar imágenes y dejar que el usuario guarde una parte seleccionada de la image. En muchas aplicaciones basadas en cameras, noté que se ofrece un marco rectangular para que los usuarios elijan la porción deseada. Esto implica deslizar los bordes del rectángulo o mover las esquinas para adaptarse al área requerida.

¿Podrías por favor guiarme sobre cómo implementar ese rectángulo mobile y cómo save solo esa parte de la image?

Usando Swift 3

El recorte de imágenes se puede hacer usando CGImages de CoreGraphics .

Obtenga la versión CGImage de un UIImage como este:

// cgImage is an attribute of UIImage let cgImage = image.cgImage 

Los objects CGImage tienen un método de recorte (a: CGRect) que hace el recorte:

 let croppedCGImage: CGImage = cgImage.cropping(to: toRect) 

Finalmente, convierta de CGImage a UIImage :

 let uiImage = UIImage(cgImage: croppedCGImage) 

Ejemplo de function:

 func cropImage(image: UIImage, toRect: CGRect) -> UIImage? { // Cropping is available trhough CGGraphics let cgImage :CGImage! = image.cgImage let croppedCGImage: CGImage! = cgImage.cropping(to: toRect) return UIImage(cgImage: croppedCGImage) } 

El atributo CGRect de recorte define el 'recorte rectángulo' dentro de la image que se recortará.

Encontré una solución más. Esta vez está en Swift. La solución se ve elegante y el código relativo a otras soluciones similares está escrito en less líneas.

Aquí está … https://github.com/DuncanMC/CropImg Gracias a Duncan Champney por hacer que su trabajo esté disponible en github.

https://github.com/myang-git/iOS-Image-Crop-View hace algo así como lo que está buscando …

Espero que esto ayude.