【问题标题】:Get an edited photo's URL from PHAsset从 PHAsset 获取已编辑照片的 URL
【发布时间】: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获取编辑后照片的本地网址?

【问题讨论】:

    标签: ios swift avfoundation 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`
      })
    

    【讨论】:

    • 太棒了!我们实际上遇到了同样的问题并开始深入研究文档并找到了这个。很高兴我们能提供帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多