【问题标题】:iOS Swift Cannot acces EXIF data on stored photoiOS Swift 无法访问存储照片上的 EXIF 数据
【发布时间】:2017-09-26 13:08:00
【问题描述】:

我需要在设备照片库中获取图片的位置。为此,我正在尝试加载图像的 Exif 数据。 这是我的代码:

   import ImageIO

   func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
       let image = info[UIImagePickerControllerOriginalImage] as? UIImage
       let ciImage = CIImage(image: image!)
       let imageProperties = CGImageSourceCopyPropertiesAtIndex(ciImage as! CGImageSource, 0, nil) as Dictionary?
       if let dict = imageProperties as? [String: Any] {
        print(dict)
    }
  }

当我尝试在设备上运行我的代码时,应用程序崩溃。 我认为问题出在演员表上,我试图做一些操作,但我无法将我的 UIImage 转换为 CFImageSource 类型。

【问题讨论】:

    标签: ios iphone swift ipad


    【解决方案1】:

    您不能将CIImage(或UIImage)转换为CGImageSource。要创建CGImageSource,请执行以下操作:

    guard let imageData = UIImageJPEGRepresentation(uiImage, 1)
        else { fatalError("Error getting image data") }
    
    guard let imageSource = CGImageSourceCreateWithData(imageData as CFData, nil)
        else { fatalError("Error creating image source") }
    
    let properties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil)
    

    UIImageJPEGRepresentation 将图像返回为 JPEG 图像,因此 uiImage 最初的格式无关紧要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 2016-01-18
      • 2011-04-10
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多