为什么来自UIImagePickerController的图像有时会被错误地裁剪?

时间:2016-09-03 17:40:48

标签: swift parse-platform uiimage uiimagepickercontroller uiimagejpegrepresentation

有时,使用adb shell cd /sdcard/Download; rm ­-f android_pay_env_override_*; touch android_pay_env_override_sandbox; 从相册中挑选的图片的裁剪方式与用户想要裁剪的图像不同。这发生在约。 50张图片上传中的1张。

当它发生时,图像总是从左上角裁剪为图像的一部分。这是一个示例图像,其中(1)在红色矩形中显示用户应该选择裁剪的内容和(2)最终在服务器上的图像。

enter image description here

(1)中的选择是假设的,因为用户不知道用户如何准确定位作物,而且还不可能再现这种错误的裁剪。它只在实时应用程序中观察到。有些用户尝试多次上传相同的图片时总是使用相同的错误裁剪并最终投诉,因此并非用户故意裁剪此类图片。

有些用户尝试上传不同的图片,而且所有图片都被错误裁剪。

这是代码(简化但没有更多的图像发生):

UIImagePickerController

有谁知道为什么会这样?

更新

我能够在iPad上重现这个问题,我会在这里更新结果。

更新

问题仅发生在iPad上,因此可能与裁剪图像时class ImagePicker { private let imagePicker = UIImagePickerController() func showPicker() { imagePicker.sourceType = .PhotoLibrary imagePicker.mediaTypes = [kUTTypeImage as String] imagePicker.allowsEditing = true imagePicker.delegate = delegate imagePicker.modalPresentationStyle = .OverFullScreen parentViewController.presentViewController(imagePicker, animated: true, completion: nil) } func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { if let image = info[UIImagePickerControllerEditedImage] as? UIImage { uploadImage(image) } picker.dismissViewControllerAnimated(true, completion: nil) } func uploadImage(image: UIImage) { let imageData = UIImageJPEGRepresentation(image, 0.75)! let imageFile = PFFile(name: "image.png", data: imageData) // Upload to Open Source Parse Server which stores the image in an Amazon S3 bucket. let imageObject = PFObject(className: "ImageClass") imageObject(imageFile, forKey: "imageFile") imageObject.saveInBackground() } } 中的错误有关。

1 个答案:

答案 0 :(得分:0)

我有同样的问题。在我的情况下,我通过我的imageView的更改内容模式解决了它。它设置为" scaleAspectFill"。我刚删除它,我的图像被正确裁剪。