首页 > 解决方案 > UIImage to String and String to UIImage in Swift

问题描述

I add name of the user and photo user to UserDefaults array then send this array to my site + insert this array in another ViewController

Code to save:

 let imageSaveData = UIImageJPEGRepresentation(self.profileUserPhotoImage.image!, 1.0) as NSData?    
 let base64String = imageSaveData?.base64EncodedString()
    let userNameAdnPhoto = ["name": self.userNameLabel.text, "image": base64String] as? [String: String]
    var userArrayToUDef = UserDefaults.standard.array(forKey: "userInfo") as? [[String: String]]

In another ViewController I don't know how to get from UserDefaults.standard.array(forKey: "userInfo") image to UIImageView in ViewController

标签: arraysswiftuiimagebase64nsuserdefaults

解决方案


String image convert in to UIImage

String to UIImage

yourString.toImage() // it will convert String  to UIImage

extension String {
    func toImage() -> UIImage? {
        if let data = Data(base64Encoded: self, options: .ignoreUnknownCharacters){
            return UIImage(data: data)
        }
        return nil
    }
}

Convert UIImage to string then this is used

UIImage to String

yourImage.toPngString() // it will convert UIImage to string

extension UIImage {
    func toPngString() -> String? {
        let data = self.pngData()
        return data?.base64EncodedString(options: .endLineWithLineFeed)
    }
  
    func toJpegString(compressionQuality cq: CGFloat) -> String? {
        let data = self.jpegData(compressionQuality: cq)
        return data?.base64EncodedString(options: .endLineWithLineFeed)
    }
}

推荐阅读