iOS decodeBase64ToImage возвращает ноль на действительном кодированном изображении base 64 - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь превратить базовую строку холста 64 в UIImage, но всегда получаю ноль.

Вот 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 голосов
/ 16 октября 2018

Строка 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;
}
...