从 PHAsset 获取已编辑照片的 URL
Posted
技术标签:
【中文标题】从 PHAsset 获取已编辑照片的 URL【英文标题】:Get an edited photo's URL from PHAsset 【发布时间】:2017-10-27 20:06:44 【问题描述】:我正在尝试使用此代码从 PHAsset
获取照片的 URL。
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`
)
大部分照片都可以很好地使用此代码。
当我在“相机”应用中拍照并在“照片”应用中旋转照片,然后在我的应用中选择旋转后的照片时,此代码会返回原始照片 URL,而不是旋转后的版本。
如何从PHAsset
获取编辑后照片的本地网址?
【问题讨论】:
【参考方案1】:尝试将您的回报更改为“false”
如果您的块返回 true,照片将提供原始资产数据 用于编辑。您的应用程序使用调整数据来更改、添加或 重新应用以前的编辑。 (例如,调整数据可能描述 应用于照片的滤镜。您的应用会重新应用这些过滤器并 允许用户更改过滤器参数、添加新过滤器或 删除过滤器。)
如果您的块返回 false,则照片提供最新的资产 数据——所有先前编辑的渲染输出——用于编辑。
https://developer.apple.com/documentation/photos/phcontenteditinginputrequestoptions/1624055-canhandleadjustmentdata
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`
)
【讨论】:
太棒了!我们实际上遇到了同样的问题并开始深入研究文档并找到了这个。很高兴我们能提供帮助!以上是关于从 PHAsset 获取已编辑照片的 URL的主要内容,如果未能解决你的问题,请参考以下文章