Converting an Image to Data and Vice Versa [closed]

 ̄綄美尐妖づ 提交于 2019-12-08 16:41:58

问题


I am using swift in Xcode and I need to convert an image to data in order to save it in SQLite db and also to convert the data object back to an image when I retrieve it from the database. Any help please? Simon


回答1:


Swift 4 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? {
        return jpegData(compressionQuality: 1)   // QUALITY min = 0 / max = 1
    }
    var png: Data? {
        return pngData()
    }
}

To convert back to Image from Data you just need to use UIImage(data:) initializer:

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) // 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)
    }
}


来源:https://stackoverflow.com/questions/33822241/converting-an-image-to-data-and-vice-versa

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!