如何使用Swift/SwiftUI从ImagePicker中获取选定的图像文件名



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

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

if let url = info[UIImagePickerController.InfoKey.imageURL] as? URL {
imagePicker.fileName = url.lastPathComponent
imagePicker.fileType = url.pathExtension
}

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

我尝试过,但无法从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,但再次找不到如何从中获取选定的图像文件名。

谢谢!:(

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

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

最新更新