iOS照片框架:如何将图像资源还原为原始图像
所有在线文档和示例都演示了如何使用PHContentEditingInput和PHContentEditingOutput编辑/更改资产。我没有发现任何关于重置或恢复图像到其原始状态的信息。任何写入RenderContentURL的内容都被视为编辑,所以这不是我想要的。只需在此处分享我的发现:使用 斯威夫特:iOS照片框架:如何将图像资源还原为原始图像,ios,objective-c,iphone,swift,photosframework,Ios,Objective C,Iphone,Swift,Photosframework,所有在线文档和示例都演示了如何使用PHContentEditingInput和PHContentEditingOutput编辑/更改资产。我没有发现任何关于重置或恢复图像到其原始状态的信息。任何写入RenderContentURL的内容都被视为编辑,所以这不是我想要的。只需在此处分享我的发现:使用 斯威夫特: PHPhotoLibrary.shared().performChanges({ let request = PHAssetChangeRequest(for:as
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
只是偶然发生的),因此不太可能在将来中断。。。