iOS 照片框架:如何将图像资源恢复为原始图像

Posted

技术标签:

【中文标题】iOS 照片框架:如何将图像资源恢复为原始图像【英文标题】:iOS Photos Framework: how to revert image asset to original 【发布时间】:2018-01-27 16:59:47 【问题描述】:

所有在线文档和示例都展示了如何使用 PHContentEditingInput 和 PHContentEditingOutput 编辑/更改资产。我没有找到任何有关将图像重置或恢复为原始图像的信息。写到 renderContentURL 的任何内容都被视为编辑,所以这不是我想要的。在这里分享我的发现:

【问题讨论】:

【参考方案1】:

使用revertAssetContentToOriginal

斯威夫特:

    phphotoLibrary.shared().performChanges(
        let request = PHAssetChangeRequest(for:asset)
        request.revertAssetContentToOriginal()
    , completionHandler:  success, error in
        if !success  print("can't revert asset: \(error)") 
    )

目标 C:

     [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
         PHAssetChangeRequest *change = [PHAssetChangeRequest changeRequestForAsset:asset];
         [change revertAssetContentToOriginal];
      completionHandler:^(BOOL success, NSError *error) 
         NSLog(@"Finished adding asset. %@", (success ? @"Success" : error));
     ];

【讨论】:

感谢您发布此内容,我希望达到同样的效果。我相信你可以在 2 天后接受你自己的答案。 我注意到request.revertAssetContentToOriginal() 似乎与request.contentEditingOutput = nil 具有相同的效果:将资产恢复到其原始状态(在提示用户授权后)。 nil 选项更紧凑,因为它不需要区分两种情况(它是“自动的”)。但是,我想我会坚持使用revertAssetContentToOriginal();感觉这是预期的方式(nil 只是偶然工作),因此未来不太可能中断......

以上是关于iOS 照片框架:如何将图像资源恢复为原始图像的主要内容,如果未能解决你的问题,请参考以下文章

iOS 在照片框架查询中从 Whatsapp 中排除图像

如何从 iOS 照片库中获取图像并在 UIWebView 中显示

在 iOS 中将图像裁剪为正方形

核心图像过滤器 iOS UISlider

如何在ios中删除照片的图像?

如何对相机胶卷中的照片进行方形切割?