swift UIImage转换成base64 求帮助 |
|
20分 |
// 先获取图片的 data let imageData = UIImagePNGRepresentation(self.image) // 把 data 转成 Base64 的 string let string = imageData.base64EncodedStringWithOptions(.allZeros) |
选择本地图片 func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { |
|
那就用这个函数 |
|
我用你说的方法现在把数据保存好了,然后再读取出来从Base64到UIImage |
|
options 的值要对应的,建议你都用 .allZeros |
|
都设成.allZeros我试了,data的值时nil |
|
decode 时,options 传这个:NSDataBase64DecodingOptions(rawValue: 0)
|
|
//create image instance
//with image name from bundle var image : UIImage = UIImage(named:”imageNameHere”)! var imageData = UIImagePNGRepresentation(image) //OR with path let base64String = imageData.base64EncodedStringWithOptions(.allZeros) let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions.fromRaw(0)!) |
|
如果你的图片是从网上获取的已经Base64过的,可能用的 Base64 算法和你的不一样,或者说服务器做过特殊处理
|
|
我找到问题了,我转换为base64后,通过webservice保存到数据库,结果把base64里面的+号都变成空格了,这个要怎么解决 |
|
看这个贴:http://stackoverflow.com/questions/5628738/strange-base64-encode-decode-problem |
|
看了,没整明白要如何解决 |
|
把+号先替换成别的字符,再调用webservice,获取的时候再替换回来;或者这样,因为+被编码成了这样的””%2B””空格,你通过这个代码解码回来: |
|
非常感谢你的帮助,现在已经可以了,我在服务端把空格重新替换成+号了 |