将 arkit 快照直接保存到照片库 swift 4
Posted
技术标签:
【中文标题】将 arkit 快照直接保存到照片库 swift 4【英文标题】:save arkit snapshot directly to photo gallery swift 4 【发布时间】:2018-04-02 14:45:15 【问题描述】:下面我的代码部分拍摄了 arkit 的快照并将其放置在图像视图上。我正在尝试将其删除,然后从拍照并自动将其保存到照片库中,而无需先将其放置在图像视图上。
@IBOutlet var cryMeARiver: UIImageView!
@IBOutlet weak var augmentedRealityView: ARSCNView!
@IBAction func place(_ sender: Any)
//THIS LINE OF THE CODE BELOW SAVES THE SNAPSHOT TO THE IMAGEVIEW
cryMeARiver.image = augmentedRealityView.snapshot()
【问题讨论】:
【参考方案1】:由于snapshot
函数返回UIImage
,因此很容易将其保存到ios Photo Library
。
开始之前,您需要确保在您的info.plist
中设置了以下密钥:
<key>NSPhotoLibraryUsageDescription</key>
<string>To Save Your ARKit Scenes</string>
然后你可以像这样调用你的函数:
@IBAction func saveScreenhot()
//1. Create A Snapshot
let snapShot = self.augmentedRealityView.snapshot()
//2. Save It The Photos Album
UIImageWriteToSavedPhotosAlbum(snapShot, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
当然记得使用回调方法来检查进程是否成功:
@objc func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer)
if let error = error
print("Error Saving ARKit Scene \(error)")
else
print("ARKit Scene Successfully Saved")
希望对你有帮助...
【讨论】:
以上是关于将 arkit 快照直接保存到照片库 swift 4的主要内容,如果未能解决你的问题,请参考以下文章
Swift iOS ARKit 从文件 NSKeyedUnarchiver NSKeyedArchiver 加载 ARWorldMap 数据