下面是我如何从图片库中获取图片。当我在应用程序的系统设置中授予照片访问权限“选定照片”时,图片的大小正如预期的那样最大。然而,当我将照片访问权限更改为“所有照片”时,下面的代码会生成原始图片的缩略图。应用程序运行在iOS 15上。没有配置iCloud。有人能告诉我这是怎么回事吗?
private func loadImage(assetId: String, done: @escaping (Image?) -> Void) {
let fetchResults: PHFetchResult<PHAsset> =
PHAsset.fetchAssets(withLocalIdentifiers: [assetId], options: nil)
guard let asset: PHAsset = fetchResults.firstObject else {
return
}
let manager = PHImageManager()
manager.requestImage(for: asset, targetSize: PHImageManagerMaximumSize,
contentMode: .aspectFit, options: nil) { (uiImage, _) in
if let uiImage = uiImage {
done(Image(uiImage: uiImage))
} else {
done(nil)
}
}
}
1条答案
按热度按时间anauzrmj1#
一般来说,我可以理解为什么图像质量取决于访问级别。我无法找到任何相关文档。但我确实发现,请求的deliveryMode也很重要。当我将以下选项添加到requestImage调用时,问题得到了解决。