首页 > 解决方案 > 从 iOS 11 相机胶卷中访问 HEIC 和 DNG 图片

问题描述

我在使用 Swift 编写的 iOS 11 应用程序中访问原始 HEIC 和 DNG 文件时遇到了麻烦;按照Apple开发人员的文档,访问原始文件就足够了,imagePicker.imageExportPreset = UIImagePickerController.ImageURLExportPreset.currentUIImagePickerController.InfoKey.imageURL我仍然得到一个指向JPEG文件的URL;我知道选择的图片是 HEIC 和 DNG,因为在 Mac 照片应用程序上导出为原始图片我得到了原始文件格式。

这是我使用的完整代码:

@IBAction func openRoll(_ sender: Any) {
    if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = .photoLibrary
        imagePicker.allowsEditing = false
        imagePicker.imageExportPreset = .current
        self.present(imagePicker, animated: true, completion: nil)
    }
}

在代表上:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    let image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage

    let path = info[UIImagePickerController.InfoKey.imageURL] as! NSURL
    NSLog("URL: \(path.absoluteString)")
    NSLog("Export: \(picker.imageExportPreset.rawValue)")
    dismiss(animated:true, completion: nil)
    // ...code to use the image!
}

非常感谢您的帮助、建议和工作片段。

标签: iosswift

解决方案


推荐阅读