Как конвертировать изображение в строку 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];