我试图将基本的64位画布字符串转换为UIImage,但我总是得到nil。
这是strEncodeData的要旨
https://gist.github.com/blasto333/5f15ab56dee0dbf790d90e9064160ea7#file-base64-receipt-image
代码
- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData
{
NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
return [UIImage imageWithData:data];
}
data
始终为空
答案 0 :(得分:2)
base64字符串不是正常的base64编码的字符串。这是一个特殊的data:
计划的URL。它以data:image/png;base64,
开头,然后是编码数据。
您需要:
- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
NSURL *url = [NSURL URLWithString: strEncodeData];
NSData *imageData = [NSData dataWithContentsOfURL: url];
UIImage *image = [UIImage imageWithData: imageData];
return image;
}