ios13使用PHImageManager获取原始图像

时间:2019-08-26 12:51:51

标签: swift phasset ios13 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返回一个错误: 错误域= NSCocoaErrorDomain代码= -1“(空)”

此代码在ios12上运行正常

能否让我知道如何在ios13上获取原始图像?

4 个答案:

答案 0 :(得分:3)

引自Apple文档here

  

使用PHImageManagerMaximumSize选项时,“照片”将提供资产可用的最大图像,而无需缩放或裁剪。 (也就是说,它忽略了resizeMode选项。)

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

resizeMode设置为.none可使PHImageManagerMaximumSize正常工作。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

对于那些仍然无法在iOS 13上请求原始图像的人,请尝试使用requestImageDataAndOrientation。

The docs建议这是请求原始图像数据的正确方法。它返回NSData,如果需要可以使用它创建UIImage。

答案 3 :(得分:-1)

requestImageDataForAsset已过时。 zoption.isSynchronous = Yes`在iOS 13中不起作用。