iOS-Swift5--UIImage转Data(jpegData和pngData)

5,826 阅读1分钟

现实开发中经常需要把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…