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

iOS decodeBase64ToImage returning nil on valid base 64 encoded image

我正在尝试将 base 64 canvas 字符串转换为 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 始终为零

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