UIImagePickerController允许编辑不工作

我正在使用UIImagePickerController允许用户拍照。 之后我想让他编辑它,但无论我在做什么,我什么也得不到。 这里是我的代码(我正在使用Xamarin):

UIImagePickerController imagePicker = new UIImagePickerController (); // set our source to the camera imagePicker.SourceType = UIImagePickerControllerSourceType.Camera; // set what media types //imagePicker.MediaTypes = UIImagePickerController.AvailableMediaTypes (UIImagePickerControllerSourceType.Camera); // show the camera controls imagePicker.ModalPresentationStyle = UIModalPresentationStyle.CurrentContext; imagePicker.ShowsCameraControls = true; imagePicker.AllowsEditing = true; imagePicker.SetEditing (true,true); imagePicker.PreferredContentSize = new SizeF(900,600); imagePicker.CameraCaptureMode = UIImagePickerControllerCameraCaptureMode.Photo; imagePicker.Title="taste.eat. image"; // attach the delegate imagePicker.Delegate = new ImagePickerDelegate(); // show the picker NavigationController.PresentViewController(imagePicker, true,null); 

我错过了什么吗?

编辑:

我已经按照教程,我正在与矩形屏幕上,但如果我平移或缩放它只是简单地回到中心,一旦我举起我的手指。 是否有可能从照片应用程序到这个屏幕?

来自照片应用程序的图像

当使用UIImagePickerController的委托-imagePickerController:didFinishPickingMediaWithInfo:,我们得到的图像使用

 UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 

即使编辑为ON,此代码也将始终返回原始图像。

尝试使用

 UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage]; 

如果编辑为ON,这将返回编辑的图像。

希望这可以帮助。

AllowsEditing属性只是允许用户select一个图像裁剪到一个正方形,并修剪video,如果select一个video。

任何其他function需要用自定义用户界面和代码来实现。

看到这个问题: iPhone的SDK – 如何自定义UIImagePickerController cropEdct与allowedEditing on?

不幸的是,你在截图中显示的内容不是UIImagePickerController一部分

SWIFT 3

我很难回到裁剪后的图像(我的最后一个简单的错误)。 而不是使用UIImagePickerControllerOriginalImage,你需要UIImagePickerControllerEditedImage。 见下文:

 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { // The info dictionary contains multiple representations of the image, and this uses the cropped image. let selectedImage = info[UIImagePickerControllerEditedImage] as! UIImage // Set yourImageView to display the selected image. yourImage.image = selectedImage // Dismiss the picker. dismiss(animated: true, completion: nil) } 

这将是这样的工作。

 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { let selectedImage = info[UIImagePickerControllerEditedImage] as! UIImage userPhoto.image = selectedImage dismiss(animated: true, completion: nil) } 

没有办法只通过改变属性如allowsEditing = YESenable filters 。 它只会显示裁剪工具。 按照你的截图,看起来你已经集成了一些漏洞百出的开源库,而没有看源代码,这将是很难修复你的中心裁剪错误。

最好是发布一些关于你的实现的具体细节,或者切换到标准的开源库 。