有时,从相册中挑选的图像UIImagePickerController
的裁剪方式与用户想要裁剪的方式不同。这发生在大约。50 张图片上传中的 1 张。
当它发生时,图像总是从左上角裁剪到图像的一部分。这是一个示例图像,(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
裁剪图像时的错误有关。