Проблема декодирования Base64 с данными data-iphone - PullRequest
2 голосов
/ 01 декабря 2011

У меня возникла проблема с декодированием данных изображения из строки в кодировке Base 64. Я использую файлы base64.h и base 64.m, загруженные по следующей ссылке

http://cdn.imthi.com/e6cef8/wp-content/uploads/2010/08/base64.zip

Это мой код

[Base64 initialize];
NSData * data = [Base64 decode:imageString];
imgview.image=[UIImage imageWithData:data];

, но при просмотре изображения ничего не отображается,

Я протестировал путем декодирования строки base 64 (взятой из консоли отладчика) с помощью онлайн-декодера base 64, он дает правильное изображение, Я также проверил, записав данные в файл, подобный этому

[data writeToFile:imagePath atomically:YES];

он дает файл jpg, но я не могу открыть этот файл изображения, выдает сообщение об ошибке типа

Не удалось открыть файл «test.jpg».

«Возможно, он поврежден или использует формат файла, который Preview не распознает». В чем проблема с моим кодом Кто-нибудь может мне помочь .....

Спасибо

1 Ответ

3 голосов
/ 01 декабря 2011

Попробуйте другую реализацию base 64, я использую одну из colloquy проект с открытым исходным кодом:


    #import "<strong>NSDataAdditions.h</strong>" 

    /* encoded string to image */
    NSString *imageString = @"";
    NSData * data = [NSData <strong>dataWithBase64EncodedString:</strong>imageString];
    UIImage *image1 = [UIImage imageWithData:data];

    /* image to encoded string, back to image */
    imageString = [UIImagePNGRepresentation(image) <strong>base64Encoding</strong>];
    data = [NSData dataWithBase64EncodedString:imageString];
    UIImage *image2 = [UIImage imageWithData:data];

Получить NSAdditions файлов: NSAdditions.h + NSAdditions.m

...