iOS的decodeBase64ToImage在有效的base 64编码图像上返回nil

时间:2018-10-15 21:29:14

标签: objective-c uiimage base64 nsdata

我试图将基本的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始终为空

1 个答案:

答案 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;
}