我使用以下简单代码将iOS中的Image转换为Base64字符串
NSData *originalPhoto = UIImagePNGRepresentation([UIImage imageNamed:@"Time_Icon.png"]);
NSString *base64PhotoString = [originalPhoto base64EncodedStringWithOptions:0];
当我尝试使用其中一个在线Base64图像解码服务图像解码base64PhotoString变量中的字符串时,不能再现,不确定是什么问题。我将此字符串发送到服务中,图像也无法识别。
确定尝试使用这些选项,最后可以获得编码的图像,这些图像可以使用在线工具正确解码,但仍然无法在服务器端识别,服务器端程序员正在使用http://www.newtonsoft.com/json/help/html/Methods_T_Newtonsoft_Json_JsonSerializer.htm 这个库将JSON中的图像反序列化为对象,它只是忽略了图像,我使用RestKit来调用服务器端,我已经意识到RestKit将转义字符添加到编码图像数据中,这可能是个问题吗?
答案 0 :(得分:0)
让我重新提一下你的问题。我想问题是你已经通过base64编码将NSData编码为NSString,你如何将它从NSString再次检索回NSData。如果问题与我描述的一样,那么StackOverflow上已有解决方案,链接就在这里:
尽管如此,我将分享我的示例代码并证明它有效。
- (void)viewDidLoad {
[super viewDidLoad];
NSData *originalPhoto = UIImagePNGRepresentation([UIImage imageNamed:@"test.png"]);
imageOri.image = [UIImage imageWithData:originalPhoto];
// encoding
NSString *base64PhotoString = [originalPhoto base64EncodedStringWithOptions:0];
// deconding
NSData *backToData = [[NSData alloc] initWithBase64EncodedString:base64PhotoString options:0];
imageDecode.image = [UIImage imageWithData:backToData];
}
希望这有帮助