Converting an Image to Data and Vice Versa [closed]
Swift 5.1 or later
To convert from UIImage
to Data
you can use UIImagePNGRepresentation
or UIImageJPEGRepresentation
if you need to reduce the file size.
extension UIImage { var jpeg: Data? { jpegData(compressionQuality: 1) } // QUALITY min = 0 / max = 1 var png: Data? { pngData() } }
To convert back to Image from Data
you just need to use UIImage(data:)
initializer:
extension Data { var uiImage: UIImage? { 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) // 416318 number of bytes contained by the data object if let imageFromData = jpegData.image { print(imageFromData.size) // (719.0, 808.0) }}if let pngData = image.png { print(pngData.count) // 1282319 if let imageFromData = pngData.image { print(imageFromData.size) // (719.0, 808.0) }}