我已经查看了类似问题的类似答案,但我仍然没有正确地将Base64编码的字符串转换为UIImage。我已经使用http://www.freeformatter.com/base64-encoder.html来测试我的字符串,并且可以成功地将图像作为响应返回。
但是,当我使用initWithBase64EncodedString时,我得到一个零响应。下面是我正在使用的代码以及我用来测试的Base64字符串的示例。我在这里缺少什么?
代码:
imageData = [[NSData alloc] initWithBase64EncodedString:checkBytesString options:0];
checkImage = [UIImage imageWithData:imageData];
字符串(它相当大,所以我通过OneDrive分享它):
答案 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];
}