Establecer dimensiones para UIImagePickerController “mover y escalar” cropbox

¿Cómo determina la dimensión “mover y escalar la pantalla” para su cuadro de cultivo?

Básicamente, me gustaría establecer un ancho y una altura fijos para “CropRect” y permitir que el usuario mueva y escale su imagen para que encaje en ese cuadro como lo desee.

¿Alguien sabe como hacer esto? (O si es posible con UIImagePickerController)

¡Gracias!

No es posible con UIImagePickerController desafortunadamente. La solución que recomiendo es desactivar la edición del selector de imágenes y manejarlo usted mismo. Por ejemplo, puse la imagen en una vista de imagen desplazable y con zoom. En la parte superior de la vista de imagen hay una “vista de guía de cultivo” de posición fija que dibuja el indicador de recorte que ve el usuario. Suponiendo que la vista de guía tiene propiedades para la rect visible (la parte que se debe mantener) y los anchos de los bordes (la parte para descartar) puede obtener el rectángulo de recorte de esa manera. Puede usar la categoría UIImage + Resize para realizar el recorte real.

CGRect cropGuide = self.cropGuideView.visibleRect; UIEdgeInsets edges = self.cropGuideView.edgeWidths; CGPoint cropGuideOffset = self.cropScrollView.contentOffset; CGPoint origin = CGPointMake( cropGuideOffset.x + edges.left, cropGuideOffset.y + edges.top ); CGSize size = cropGuide.size; CGRect crop = { origin, size }; crop.origin.x = crop.origin.x / self.cropScrollView.zoomScale; crop.origin.y = crop.origin.y / self.cropScrollView.zoomScale; crop.size.width = crop.size.width / self.cropScrollView.zoomScale; crop.size.height = crop.size.height / self.cropScrollView.zoomScale; photo = [photo croppedImage:crop]; 

Un poco tarde para el juego, pero creo que esto es lo que estás buscando: https://github.com/gekitz/GKImagePicker

Aquí hay una solución para el cultivo manual de Ming Yang. https://github.com/myang-git/iOS-Image-Crop-View

Ofrece un marco rectangular, que el usuario puede deslizar o arrastrar para adaptarse a la parte requerida de la imagen en el rectángulo. Tenga en cuenta que esta solución hace el reverso de la pregunta: permite que el tamaño del rectángulo varíe, pero finalmente produce el resultado deseado.

Está codificado en Objective-C. Es posible que tenga que codificarlo en Swift o simplemente crear un encabezado de puente para conectar el código Objective-C con el código Swift.

Ahora es tarde pero puede ser útil para alguien. Esta es la biblioteca que utilicé rápidamente (muchas gracias a Tim Oliver ):

TOCropViewController

como se describe en el archivo README en el enlace anterior de GitHub, al usar esta biblioteca puede obtener imágenes recortadas en un formato rectangular definido por el usuario y también en un modo circular, por ejemplo, para actualizar la imagen de perfil. a continuación se muestra el código de muestra de GitHub:

 func presentCropViewController { let image: UIImage = ... //Load an image let cropViewController = CropViewController(image: image) cropViewController.delegate = self present(cropViewController, animated: true, completion: nil) } func cropViewController(_ cropViewController: CropViewController, didCropToImage image: UIImage, withRect cropRect: CGRect, angle: Int) { // 'image' is the newly cropped version of the original image }