我正在尝试使用此代码从PHAsset
获取照片的网址。
let options: PHContentEditingInputRequestOptions = PHContentEditingInputRequestOptions()
options.canHandleAdjustmentData = {(adjustmeta: PHAdjustmentData) -> Bool in
return true
}
asset.requestContentEditingInput(with: options, completionHandler: { (contentEditingInput, info) in
guard let url = contentEditingInput?.fullSizeImageURL else {
observer.onError(PHAssetError.imageRequestFailed)
return
}
/// Using this `url`
})
大多数照片都适用于此代码。
当我在相机应用中拍摄照片并在照片应用中旋转照片时,请在我的应用中选择已旋转的照片,此代码会返回原始照片网址 - 而非旋转版本。
如何从PHAsset
获取已修改照片的本地网址?
答案 0 :(得分:4)
尝试将您的回报更改为“ false ”
如果您的区块返回true,则照片会提供原始资产数据 用于编辑。您的应用使用调整数据来更改,添加或 重新应用以前的编辑。 (例如,调整数据可以描述 过滤器应用于照片。您的应用重新应用了这些过滤器和 允许用户更改过滤器参数,添加新过滤器或 删除过滤器。)
如果您的区块返回false,则照片会提供最新资产 数据 - 所有先前编辑的渲染输出 - 用于编辑。
let options: PHContentEditingInputRequestOptions = PHContentEditingInputRequestOptions()
options.canHandleAdjustmentData = {(adjustmeta: PHAdjustmentData) -> Bool in
return false
}
asset.requestContentEditingInput(with: options, completionHandler: { (contentEditingInput, info) in
guard let url = contentEditingInput?.fullSizeImageURL else {
observer.onError(PHAssetError.imageRequestFailed)
return
}
/// Using this `url`
})