我有一个应用程序,显示来自互联网的GIF,我正在尝试添加将GIF保存到相机胶卷的功能。我正在使用scala.collection.GenTraversableOnce
,我正试图使用我在几个SO问题中看到的方法将其保存到相机胶卷,例如this one:
PHPhotoLibrary
然而,这给了我func saveToCameraRoll(imageUrl: String) {
PHPhotoLibrary.shared().performChanges({ _ in
let createRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(
atFileURL: URL(string: imageUrl)!)
}) { success, error in
guard success else {
log.debug("failed to save gif \(error)")
return
}
log.debug("successfully saved gif")
}
}
,这似乎是因为.gif文件格式,但我找不到另一个如何在不使用已弃用的failed to save gif Optional(Error Domain=NSCocoaErrorDomain Code=-1 "(null)")
的情况下保存到相机胶卷的示例。
我尝试从Safari中保存GIF,这很有用:GIF在发送给其他人时动画,所以我知道我想要做的事情是可能的,但有人可以指向PHPhotoLibrary API的正确部分?
编辑:根据this answer对类似问题,我想出如何使用ALAssetsLibrary.writeImageDataToSavedPhotosAlbum
和Data
执行我想要的操作,如下所示:
PHAssetCreationRequest