在 UIImage 和 Base64 字符串之间转换 [英] Convert between UIImage and Base64 string
本文介绍了在 UIImage 和 Base64 字符串之间转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有谁知道如何将 UIImage
转换为 Base64 字符串,然后将其反转?
Does anyone know how to convert a UIImage
to a Base64 string, and then reverse it?
我有以下代码;编码前的原图是好的,但是我编码和解码后得到一个空白图像.
I have the below code; the original image before encoding is good, but I only get a blank image after I encode and decode it.
NSData *imageData = UIImagePNGRepresentation(viewImage);
NSString *b64EncStr = [self encode: imageData];
NSString *base64String = [self encodeBase64:imageData];
推荐答案
Swift
首先我们需要有图片的 NSData
//Use image name from bundle to create NSData
let image : UIImage = UIImage(named:"imageNameHere")!
//Now use image to create into NSData format
let imageData:NSData = UIImagePNGRepresentation(image)!
//OR next possibility
//Use image's path to create NSData
let url:NSURL = NSURL(string : "urlHere")!
//Now use image to create into NSData format
let imageData:NSData = NSData.init(contentsOfURL: url)!
Swift 2.0 >编码
let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
Swift 2.0 >解码
let dataDecoded:NSData = NSData(base64EncodedString: strBase64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)!
Swift 3.0 >解码
let dataDecoded : Data = Data(base64Encoded: strBase64, options: .ignoreUnknownCharacters)!
编码:
let strBase64 = imageData.base64EncodedString(options: .lineLength64Characters)
print(strBase64)
解码:
let dataDecoded:NSData = NSData(base64EncodedString: strBase64, options: NSDataBase64DecodingOptions(rawValue: 0))!
let decodedimage:UIImage = UIImage(data: dataDecoded)!
print(decodedimage)
yourImageView.image = decodedimage
Swift 3.0
let dataDecoded : Data = Data(base64Encoded: strBase64, options: .ignoreUnknownCharacters)!
let decodedimage = UIImage(data: dataDecoded)
yourImageView.image = decodedimage
目标-C
iOS7 >版本
你可以使用NSData的
base64EncodedStringWithOptions
编码:
- (NSString *)encodeToBase64String:(UIImage *)image {
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
解码:
- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
return [UIImage imageWithData:data];
}
iOS 6.1 和 <版本
第一个选项:使用 this 链接到 encode
和 decode
图像
iOS 6.1 and < version
First Option : Use this link to encode
and decode
image
在您的 中添加 Base64 类项目
.
Add Base64 class in your project
.
编码:
NSData* data = UIImageJPEGRepresentation(yourImage, 1.0f);
NSString *strEncoded = [Base64 encode:data];
解码:
NSData* data = [Base64 decode:strEncoded ];;
image.image = [UIImage imageWithData:data];
另一种选择:使用 QSUtilitiesencoding
和 decoding
这篇关于在 UIImage 和 Base64 字符串之间转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文