Swift 4 or later
To convert from UIImageto Datayou can use UIImagePNGRepresentationor UIImageJPEGRepresentationif you need to reduce the file size.
extension UIImage {
var jpeg: Data? {
return jpegData(compressionQuality: 1)
}
var png: Data? {
return pngData()
}
}
To convert back to an image from Datayou just need to use UIImage(data:):
extension Data {
var uiImage: UIImage? {
return UIImage(data: self)
}
}
Playground
let image = UIImage(data: try! Data(contentsOf: URL(string: "https://i.stack.imgur.com/Xs4RX.jpg")!))!
if let jpegData = image.jpeg {
print(jpegData.count)
if let imageFromData = jpegData.image {
print(imageFromData.size)
}
}
if let pngData = image.png {
print(pngData.count)
if let imageFromData = pngData.image {
print(imageFromData.size)
}
}
source
share