如何将图像转换为Base64Encode字符串

时间:2014-10-22 08:45:46

标签: ios objective-c uiimage base64 encode

如何将Image转换为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字符串的空值。

@All 在此先感谢。

3 个答案:

答案 0 :(得分:5)

编码不正确..

试试这个:

NSString *base64 = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

答案 1 :(得分:1)

问题

您收到空数据,因为您的.png格式图片尝试使用UIImageJPEGRepresentation获取数据

解决方案

您需要使用UIImagePNGRepresentation

来自Apple Developer

NSData *imageData = UIImagePNGRepresentation (someImage);

P.S UIImagePNGRepresentation没有压缩系数,它只有图像参数

答案 2 :(得分:0)

//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];