有时使用
当发生这种情况时,图像总是被剪裁为图像左上角的一部分。下面是一个示例图像,其中(1)显示了用户所选择的应该裁剪的区域,而(2)则是最终上传到服务器的图像。 (1)中的选择是假设性的,因为不知道用户确切地如何定位裁剪,并且尚未能够重现此错误的裁剪。这只在实时应用程序中观察到。一些用户尝试多次上传相同的图像,始终使用相同的错误裁剪,最终投诉,因此并不是用户故意这样裁剪图像。
一些用户尝试上传不同的图像,但所有图像都被错误地裁剪。
以下是代码(简化版,但图像不会发生更改):
UIImagePickerController
从照片库中选择的图像被剪裁得与用户想要剪裁的方式不同。这在大约50个图像上传中发生一次。当发生这种情况时,图像总是被剪裁为图像左上角的一部分。下面是一个示例图像,其中(1)显示了用户所选择的应该裁剪的区域,而(2)则是最终上传到服务器的图像。 (1)中的选择是假设性的,因为不知道用户确切地如何定位裁剪,并且尚未能够重现此错误的裁剪。这只在实时应用程序中观察到。一些用户尝试多次上传相同的图像,始终使用相同的错误裁剪,最终投诉,因此并不是用户故意这样裁剪图像。
一些用户尝试上传不同的图像,但所有图像都被错误地裁剪。
以下是代码(简化版,但图像不会发生更改):
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()
}
}
有人知道为什么会发生这种情况吗?
更新:
我在iPad上成功重现了这个问题,我会在这里更新结果。
更新:
该问题只出现在iPad上,因此可能与UIImagePickerViewController
在裁剪图像时的一个漏洞有关。