6

有时,从相册中挑选的图像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裁剪图像时的错误有关。

4

1 回答 1

0

我遇到过同样的问题。就我而言,我通过更改 imageView 的内容模式来解决它。它被设置为“scaleAspectFill”。我刚刚删除了它,我的图像被正确地裁剪了。

于 2018-02-15T12:34:58.190 回答