swift保存图片和GIF

2021-08-25  本文已影响0人  你是真的很皮
//保存图片和GIF,两种保存方式不一样
func saveImage(_ url: String) {
     var data:Data?
     var image: UIImage?
     
     DispatchQueueMain(true, nil, global: {
         data = try? Data.init(contentsOf: URL.init(string: url)!)
     }) {
         //保存GIF
         if url.contains(".gif") {
             PHPhotoLibrary.shared().performChanges {
                 let options = PHAssetResourceCreationOptions()
                 PHAssetCreationRequest.forAsset().addResource(with: .photo, data: data!, options: options)
             } completionHandler: { (isSuccess: Bool, error: Error?) in
                 DispatchQueue.main.async {
                     if isSuccess {
                         self.showSimpleText("已保存到相册")
                     }else {
                         self.showSimpleText("保存失败")
                     }
                 }
             }
         }else {
             //保存普通图片
             image=UIImage(data: data!)
             if image != nil{
                 UIImageWriteToSavedPhotosAlbum(image!, self, #selector(self.image(image:didFinishSavingWithError:contextInfo:)), nil)
             }
         }
     }
 }

//保存普通图片系统回调
@objc func image(image: UIImage, didFinishSavingWithError error: NSError?, contextInfo: AnyObject) {
     if error != nil {
         self.showSimpleText("保存失败")
         return
     }
     self.showSimpleText("已保存到相册")
 }
上一篇下一篇

猜你喜欢

热点阅读