如何解决 PhotoKit 错误“原始资源选择仅对未调整的基础版本有效”?

Posted

技术标签:

【中文标题】如何解决 PhotoKit 错误“原始资源选择仅对未调整的基础版本有效”?【英文标题】:How to resolve the PhotoKit error "Original resource choice is only valid for an unadjusted base version"? 【发布时间】:2019-03-08 16:11:11 【问题描述】:

我尝试将 IPTC、TIFF 和 EXIF 数据添加到 PHAsset。当我使用以下代码应用更改时,我收到了上述错误:

guard let ciImage = CIImage(contentsOf: input.fullSizeImageURL!,  options: [.applyOrientationProperty:true]) else 
    fatalError("Not able to create CIImage from input")


//Write the edited image as a JPEG.
do 
    try CIContext().writeJPEGRepresentation(of: ciImage,
                                            to: output.renderedContentURL,
                                    colorSpace: outputImage.colorSpace!,
                                       options: [kCGImageDestinationLossyCompressionQuality as CIImageRepresentationOption:1.0])

 catch let error 
    fatalError("Can't apply metadata to the image: \(error).")


phphotoLibrary.shared().performChanges(
    let request = PHAssetChangeRequest(for: self.asset!)
    request.contentEditingOutput = output
, completionHandler:  success, error in
    if !success 
        print("Can't edit the asset: \(error?.localizedDescription)")
    

错误:

[PhotoKit] Original resource choice is only valid for an unadjusted base version

我做错了什么?有没有更好的方法将 IPTC 元数据添加到 PHAsset,分别。 UIImage 文件?

【问题讨论】:

【参考方案1】:

如果在我创建问题中显示的 CIImage 之前发现代码中存在的问题。我删除了代码,而不是覆盖 CIImage 的二进制数据,我只是使用 CIImage 将我的更改存储在 PHAsset / PHAssetLibrary 中。

【讨论】:

我在尝试更新实时照片时收到此错误。您能否为您的答案提供更多细节?从phAsset.requestContentEditingInput 开始,你的连锁店是什么样子的? 您能否提供更详细的答案?

以上是关于如何解决 PhotoKit 错误“原始资源选择仅对未调整的基础版本有效”?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PhotoKit 列出共享的照片流相册

iOS PhotoKit框架如何获取视频文件大小

iOS PhotoKit框架 详解

在 PhotoKit 中,修改 PHAsset 会留下原始的。如何?可覆盖?

使用 PhotoKit 在文件夹内创建子文件夹

photoKit不得不说的坑