【问题标题】:How to get selected image file name from ImagePicker using Swift/SwiftUI如何使用 Swift/SwiftUI 从 ImagePicker 获取选定的图像文件名
【发布时间】:2021-05-13 15:31:21
【问题描述】:

我正在通过 UIImagePickerController 将 ImagePicker 与 SwiftUI 一起使用。它可以选择一个图像。但我也想知道原始图像文件名。有没有办法做到这一点?

我已经尝试过使用以下代码:

if let url = info[UIImagePickerController.InfoKey.imageURL] as? URL {

  imagePicker.fileName = url.lastPathComponent

  imagePicker.fileType = url.pathExtension

}

但上面的代码给出了临时图像文件名。

【问题讨论】:

    标签: ios swift swiftui imagepicker


    【解决方案1】:

    如果需要访问选中的UIImage,可以使用originalImage属性:

    if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
       ...
    }
    

    【讨论】:

      【解决方案2】:

      我试过了,但我无法从 UIImage 获取文件名(url)。

      下面的代码暂时解决了问题。

            if let url = info[UIImagePickerController.InfoKey.referenceURL] as? URL {
                  let assets = PHAsset.fetchAssets(withALAssetURLs: [url], options: nil)
                  if let firstAsset = assets.firstObject,
                  let firstResource = PHAssetResource.assetResources(for: firstAsset).first {
                      imagePicker.fileName = firstResource.originalFilename
                  } else {
                      imagePicker.fileName = "IMG_random_string"
                  }
              } else {
                  imagePicker.fileName = "IMG_random_string"
              }
      

      但是这里的 referenceURL 和 fetchAssets 是贬值的。我尝试使用 PHPickerViewController,但再次找不到如何从中获取选定的图像文件名。

      谢谢! :))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-25
        • 1970-01-01
        • 1970-01-01
        • 2014-03-30
        • 2016-03-04
        • 1970-01-01
        • 2014-11-03
        • 1970-01-01
        相关资源
        最近更新 更多