Как конвертировать изображение в строку Base64Encode

Как конвертировать изображение в base64String.

  UIImage * someImage = [UIImage imageNamed: @"page4.png"];
    NSData *imageData = UIImageJPEGRepresentation(someImage, 1.0);
//    NSString *encodedString = [imageData base64EncodedDataWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
      NSString *base64 = [[NSString alloc] initWithData:imageData encoding:NSUTF8StringEncoding] ;
    if (base64){
       NSLog(@"Base 64 %@",base64);
      }

Приведенный выше код дает мне пустое значение для строки base64.

@ Все заранее.

3 ответа

Решение

Кодировка не правильная..

Попробуй это:

NSString *base64 = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

вопрос

Вы получаете пустые данные, потому что у вас есть .png формат изображения пытается получить данные с UIImageJPEGRepresentation

Решение

Вам нужно использовать UIImagePNGRepresentation

От Apple Developer:

NSData *imageData = UIImagePNGRepresentation (someImage);

PS UIImagePNGRepresentation не имеет коэффициента сжатия, он имеет только параметр изображения

//For Encoding
UIImage * someImage = [UIImage imageNamed: @"page4.png"];
NSData *imageData=UIImagePNGRepresentation(someImage);
NSString *base64 = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

// For Decoding
NSData *data=[[NSData alloc]initWithBase64EncodedString:base64 options:NSDataBase64DecodingIgnoreUnknownCharacters];
UIImage *image = [UIImage imageWithData:data];
Другие вопросы по тегам