从PHAsset

时间:2017-10-27 20:06:44

标签: ios swift avfoundation phasset

我正在尝试使用此代码从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获取已修改照片的本地网址?

1 个答案:

答案 0 :(得分:4)

尝试将您的回报更改为“ 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`
  })