【问题标题】:How to Convert Image to Base64Encode String如何将图像转换为 Base64Encode 字符串
【发布时间】:2014-12-17 16:05:39
【问题描述】:

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

@全部 提前致谢。

【问题讨论】:

    标签: ios objective-c uiimage base64 encode


    【解决方案1】:
    //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];
    

    【讨论】:

      【解决方案2】:

      问题

      你得到的是空数据,因为你有一个.png 格式的图像试图用UIImageJPEGRepresentation 获取数据

      解决方案

      你需要使用UIImagePNGRepresentation

      来自Apple Developer

      NSData *imageData = UIImagePNGRepresentation (someImage);
      

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

      【讨论】:

        【解决方案3】:

        编码不正确..

        试试这个:

        NSString *base64 = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
        

        【讨论】:

          猜你喜欢
          • 2016-09-29
          • 1970-01-01
          • 2011-06-17
          • 1970-01-01
          • 1970-01-01
          • 2020-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多