为什么UIImagePickerController失去了图像的大小和质量?

时间:2019-01-20 23:31:04

标签: ios swift image uiimage uiimagepickercontroller

发现了一个非常奇怪和令人不安的问题。尝试从相机胶卷中打开大于标准iPhone相机分辨率(4032x3024)的图像。

我有很多示例,但其中有两个:

  1. ok.jpg-7.3mb,5184x3456 https://drive.google.com/file/d/1gAtj_rmkHg-HVQSalme1ZkiWkm_vPLjD/view?usp=sharing
  2. nok.jpg-2.6mb,4608x3456 https://drive.google.com/file/d/1cgZm955GpdPHm9UMTa8TWXWKKmgw1sML/view?usp=sharing

使用我的代码,我既可以直接使用UIImage类型打开,也可以尝试使用纯数据格式,这证明了我的观点,即数据输出已经减少了! Nok.jpg文件的大小和分辨率较小,减少它没有任何意义,因为它可以成功打开较大的文件!为什么会这样以及如何解决?

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    dismiss(animated: true, completion: {
        let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage
        let url = info[UIImagePickerController.InfoKey.imageURL] as? URL
        do {
            let data = try Data(contentsOf: url!)
            print(data.count)
            let imageFromURL = UIImage(data: data)
            print("image size from URL:", imageFromURL!.size)
        }   catch { print (error) }

        print("image size direct:", image!.size)
    }
}


// actual output:
// ok.jpg:
// 7329635
// image size from URL: (5184.0, 3456.0)
// image size direct: (5184.0, 3456.0)
// nok.jpg:
// 975328
// image size from URL: (2048.0, 1536.0)
// image size direct: (2048.0, 1536.0)

0 个答案:

没有答案