用于JSON的Swift编码/解码图像

Adr*_*scu 5 json encode decode ios swift

我是swift的新手,我需要一些帮助来编码一些图像,将它放入JSON中并在检索之后,将其解码回NSData并在UIImage视图控制器中重新创建图像.我发现这篇文章在iOS + Swift中将图像转换为Base64字符串,但我对此部分感到困惑:

let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions.fromRaw(0)!)

因为fromRaw方法不再可用.

提前致谢

稍后编辑:我正在使用swiftyJson来解析数组,我得到的图像数据如下:

var base64String = arrayJson[0]["photo"].stringValue
var imageString = base64String as NSString
Run Code Online (Sandbox Code Playgroud)

之后,我试图像这样解码它:

let decodedData = NSData(base64EncodedString: imageString, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用rawValue而不是IgnoreUnknownCharacters.两者都归零.还尝试使用base64String而不是imageString.一样.

zta*_*tan 9

您可以执行以下操作,将base64编码的字符串转换为UIImage:

 //base64 string to NSData
 let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))

//NSData to UIImage
var decodedIamge = UIImage(data: decodedData!)
Run Code Online (Sandbox Code Playgroud)

NSDataBase64EncodingOptions.fromRaw(0)! 现在改为 NSDataBase64DecodingOptions(rawValue: 0)

有关更多编码/解码详细信息,您可以访问此文章:在UIImage和Base64字符串之间进行转换


kel*_*ket 3

对图像进行编码:

let image = UIImage(...)
let quality = 1.0
let data: NSData = UIImageJPEGRepresentation(image, quality)!
Run Code Online (Sandbox Code Playgroud)

解码图像:

let decodedImage = UIImage(data: data)
Run Code Online (Sandbox Code Playgroud)