将 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 数据

通过Swift设置ARKit方向

使用 Swift 将照片保存到图库中的文件夹

无法获取 QR 码的正确坐标,ARKit - Swift

将 UIImage 保存到 plist 问题 (SWIFT)

Swift iOS:将视频保存到库