Arrays Swift中的UIImage到字符串和字符串到UIImage

Arrays Swift中的UIImage到字符串和字符串到UIImage,arrays,swift,uiimage,base64,nsuserdefaults,Arrays,Swift,Uiimage,Base64,Nsuserdefaults,我将用户和照片用户的姓名添加到UserDefaults数组中,然后将此数组发送到我的站点并将此数组插入另一个ViewController 要保存的代码: let imageSaveData = UIImageJPEGRepresentation(self.profileUserPhotoImage.image!, 1.0) as NSData? let base64String = imageSaveData?.base64EncodedString() let userNa

我将用户和照片用户的姓名添加到
UserDefaults
数组中,然后将此数组发送到我的站点并将此数组插入另一个
ViewController

要保存的代码:

 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]]

在另一个
ViewController
中,我不知道如何从
UserDefaults.standard.array(forKey:“userInfo”)
图像到
ViewController中的
UIImageView
字符串图像转换成UIImage

字符串到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
    }
}
将UIImage转换为字符串,然后使用

ui图像到字符串

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

此函数仅用于将字符串转换为UIImage

  extension String {

        func stringToImage(_ handler: @escaping ((UIImage?)->())) {
            if let url = URL(string: self) {
                URLSession.shared.dataTask(with: url) { (data, response, error) in
                    if let data = data {
                        let image = UIImage(data: data)
                        handler(image)
                    }
                }.resume()
            }
        }
    }
将此函数用作

            yourString.stringToImage {(image) in
              self.yourPhoto.image = image
            }

如今,“UIImagePngResentation”方法更新为“pngData()”方法

如果要将UIImage转换为字符串,可以使用以下行:

extension UIImage {
    func toString() -> String? {

        let pngData = self.pngData()

        //let jpegData = self.jpegData(compressionQuality: 0.75)

        return pngData?.base64EncodedString(options: .lineLength64Characters)
    }
}

这是来自swift游乐场形状:

extension String {
/// Returns a SPCScene.Image from a string. Use to generate an image, based on an emoji string.
func image() -> UIImage {
    let size = CGSize(width: 80, height: 80)
    UIGraphicsBeginImageContextWithOptions(size, false, 0)
    UIColor.clear.set()
    let rect = CGRect(origin: .zero, size: size)
    UIRectFill(CGRect(origin: .zero, size: size))
    (self as AnyObject).draw(in: rect, withAttributes: [.font: UIFont.systemFont(ofSize: 70)])
    if let image = UIGraphicsGetImageFromCurrentImageContext() {
        UIGraphicsEndImageContext()
        return image
        
    } else {
        return UIImage()
    }
}
}

它在另一个ViewController中100%工作

,我有
@IBOutlet弱var userPhotoImage:UIImageView我做对了吗userPhotoImage.image=toImage?此代码将uiimage转换为字符串,并将字符串转换为UIimagefrist,这是在转换为uiimage后,在userdefault中所有get字符串中的第一个