(本文代码已升级至Swift3)
有时我们需要把图像(比如:从网络上获取的图片、程序自己生成的图片等)保存到系统相册(照片)中,通常有两种办法:一是使用 UIImageWriteToSavedPhotosAlbum()方法保存,二是使用 Photos框架来实现。
(照片库 ALAssetsLibrary以后会被废弃,所以不建议继续使用。)
下面以将imageView中的图像保存到相册为例,分别演示这两种实现方式。
准备工作:Info.plist配置
由于苹果安全策略更新,在使用Xcode8开发时,需要在 Info.plist配置请求照片相的关描述字段(Privacy - Photo Library Usage Description)
1,使用UIImageWriteToSavedPhotosAlbum()方法保存图片
UIImageWriteToSavedPhotosAlbum()优点是使用简单,一句话就搞定。但如果想要取得刚刚保存的地址就没办法了。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func saveImage(_ sender: AnyObject) {
let image = self.imageView.image!
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
}
可以看到图片被保存到相机胶卷中去了:
2,使用Photos框架来保存图片
在iOS 8之前,开发者只能用 AssetsLibrary框架访问的用户的照片库。几年以来,相机应用和照片应用发生了显著的变化,增加了许多新特性,包括按时刻来组织照片的方式。但与此同时,AssetsLibrary框架却没有跟上步伐。
随着 iOS 8 的到来,苹果给我