现实开发中经常需要把UIImage存到沙盒里去,一般都会先转化为jpegData或pngData再存
我一般会先写个辅助函数,用来获取沙盒里的documents文件夹:
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
}
UIImage转jpegData:
if let image = UIImage(named: "xx.png"),let data = image.jpegData(compressionQuality: 0.8) {
let filename = getDocumentsDirectory().appendingPathComponent("\(UUID().uuidString).jpeg")
try? data.write(to: filename)
}
jpeg图片都是可以压缩的,所以有个compressionQuality参数,代表压缩质量,取值0-1(一般0.8或0.9,具体看需求)
UIImage转pngData:
if let image = UIImage(named: "xx.png"),let data = image.pngData() {
let filename = getDocumentsDirectory().appendingPathComponent("\(UUID().uuidString).png")
try? data.write(to: filename)
}
广告时间:
大家如果正好想学iOS开发的话,可以来看看小弟的iOS视频教程(永久更新+售后辅导): m.cctalk.com/inst/s9vfhe…