[英]Using SwiftUI native PhotosPicker to get a PHAsset or any metadata about the image
我可以使用 iOS 16 / macOS Ventura 中的新 PhotosPicker 獲取圖像數據。 這是我所做的:
PhotosPicker(selection: $selectedPhotosPickerItems, matching: .any(of: [.images]), photoLibrary: .shared()) {
Text("Select photos")
}
.onChange(of: selectedPhotosPickerItems) { newItems in for newItem in newItems {
Task {
if let data = try? await newItem.loadTransferable(type: Data.self) {
... = UIImage(data: data)
}
}
}
}
但是,我需要有關照片的更多信息。 如果我能以某種方式獲取 PHAsset,那就太棒了,或者至少是最初的創建日期。 PHAsset 不符合 Transferable。 有沒有辦法只知道圖像數據來獲取 PHAsset? 也許用 hash?
我們在結果項中有標識符,因此可以獲取相應PHAsset
。
這是單個選擇項的簡化演示(假設 Info.plist 已更新並且授權請求已完成)。
.onChange(of: selectedPhotosPickerItem) { newItem in
if let newItem, let localID = newItem.itemIdentifier {
let result = PHAsset.fetchAssets(withLocalIdentifiers: [localID], options: nil)
if let asset = result.firstObject {
print("Got " + asset.debugDescription)
}
*iOS/macOS 方法在這里是一樣的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.