将UIImage转换为NSData并在Swift中转换回UIImage?

我试图保存一个UIImageNSData ,然后在Swift中将NSData读回新的UIImage 。 将UIImage转换为NSData我使用下面的代码:

 let imageData: NSData = UIImagePNGRepresentation(myImage) 

如何将imageData (NSData)转换回新的UIImage

UIImage(data:imageData,scale:1.0)假设图像的比例是1。

谢谢。 帮了我很多。 转换为Swift 3并工作

let data = UIImagePNGRepresentation(image) as NSData?

要获取: let imagePt = UIImage(data: (caminhodaImagem as! NSData) as Data)

使用imageWithData:方法,将其作为UIImage(data:)转换为Swift UIImage(data:)

 let image : UIImage = UIImage(data: imageData) 

保存为数据:

从StoryBoard中,如果你想在MainStoryBoard的imageView上保存“图像”数据,下面的代码将起作用。

 let image = UIImagePNGRepresentation(imageView.image!) as NSData? 

加载“image”到imageView:看感叹号“!”,“?” 与这一点是否相当接近。

 imageView.image = UIImage(data: image as! Data) 

在此过程中,“NSData”types会自动转换为“数据”types。

为了安全地执行代码,使用带有Data if-let块来防止应用程序崩溃,因为函数UIImagePNGRepresentation返回一个可选值。

 if let img = UIImage(named: "TestImage.png") { if let data:Data = UIImagePNGRepresentation(img) { // Handle operations with data here... } } 

注意: 数据是Swift 3+类。 Swift 3+使用数据而不是NSData

通用图像操作(如png和jpg):

 if let img = UIImage(named: "TestImage.png") { //UIImage(named: "TestImage.jpg") if let data:Data = UIImagePNGRepresentation(img) { handleOperationWithData(data: data) } else if let data:Data = UIImageJPEGRepresentation(img, 1.0) { handleOperationWithData(data: data) } } ******* func handleOperationWithData(data: Data) { // Handle operations with data here... if let image = UIImage(data: data) { // Use image... } } 

通过使用扩展:

 extension UIImage { var pngRepresentationData: Data? { return UIImagePNGRepresentation(img) } var jpegRepresentationData: Data? { return UIImageJPEGRepresentation(self, 1.0) } } ******* if let img = UIImage(named: "TestImage.png") { //UIImage(named: "TestImage.jpg") if let data = img.pngRepresentationData { handleOperationWithData(data: data) } else if let data = img.jpegRepresentationData { handleOperationWithData(data: data) } } ******* func handleOperationWithData(data: Data) { // Handle operations with data here... if let image = UIImage(data: data) { // Use image... } }