ios13 使用 PHImageManager 获取原始图像

ios13 get original image using PHImageManager

关于 ios 13 PHImageManagerMaximumSize 不起作用。

调用时

let manager = PHImageManager.default()
let option = PHImageRequestOptions()
option.isSynchronous = synchronous
option.isNetworkAccessAllowed = true
option.resizeMode = .exact

manager.requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: .aspectFill, options: option, resultHandler: {(result, info) in
})

requestImage returns一个错误: 错误域=NSCocoaErrorDomain 代码=-1 "(null)"

此代码在 ios12

上运行良好

能否告诉我如何在 ios13 上获取原始图像?

尝试 requestImageDataForAsset,即使它被标记为已弃用。 您还应该将 iOS 13 上的 requestImage 问题作为错误报告给 Apple。

requestImageDataForAsset 已弃用。 zoption.isSynchronous = Yes` 在 iOS 13.

中不起作用

引自 Apple 文档 here:

When you use the PHImageManagerMaximumSize option, Photos provides the largest image available for the asset without scaling or cropping. (That is, it ignores the resizeMode option.)

但是在这种情况下,resizeMode 似乎对 iOS 13 有效。

resizeMode 设置为 .none 会使 PHImageManagerMaximumSize 按预期工作。

对于那些在 iOS 13 上请求原始图像仍然有问题的人,请尝试改用 requestImageDataAndOrientation。

The docs 提示这是请求原始图片数据的正确方式。它 returns NSData,如果需要,您可以使用它来创建 UIImage。