将Base64字符串转换为UIImage

时间:2014-03-30 19:14:27

标签: objective-c uiimage base64 nsdata

我已经查看了类似问题的类似答案,但我仍然没有正确地将Base64编码的字符串转换为UIImage。我已经使用http://www.freeformatter.com/base64-encoder.html来测试我的字符串,并且可以成功地将图像作为响应返回。

但是,当我使用initWithBase64EncodedString时,我得到一个零响应。下面是我正在使用的代码以及我用来测试的Base64字符串的示例。我在这里缺少什么?

代码:

imageData = [[NSData alloc] initWithBase64EncodedString:checkBytesString options:0]; checkImage = [UIImage imageWithData:imageData];

字符串(它相当大,所以我通过OneDrive分享它):

https://onedrive.live.com/redir?resid=60AA391B8FEA9C36!107&authkey=!AFK_y5UHOFsdYsKZI&ithint=file%2c.rtf

2 个答案:

答案 0 :(得分:2)

答案是使用外部库NSData + Base64。它实现了正确返回imageData的方法dataFromBase64String,因此可以将其转换为图像。

https://github.com/l4u/NSData-Base64

imageData = [NSData dataFromBase64String:frontCheckBytesString];
checkImage = [UIImage imageWithData:imageData];

答案 1 :(得分:1)

iOS 7以后的简单

- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData
{
    NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
    return [UIImage imageWithData:data];
}

UIImage *zeroImage = [[UIImage alloc]init];
if(![strb64Image isEqualToString:@""] && strb64Image)
{
    zeroImage = [self decodeBase64ToImage:strB64Image];
}