【问题标题】:How To Display A base64 Encoded Image Into A UIImageView In Xcode 6?如何在 Xcode 6 中将 base64 编码的图像显示到 UIImageView 中?
【发布时间】:2015-02-11 13:20:26
【问题描述】:

我想创建一个获取 base64 图像数据并将其显示在 UIImageView 中的应用程序。我已经阅读了很多关于如何实现这一点的信息,但没有成功。我知道我有一个有效的 base64 图像数据,但我无法在 UIImageView 中显示它。

这是我的代码:

[ImageView setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:ImageData]]]];

ImageView 是我的 UIImageView 而ImageData 是我作为 NSString 的 base64 数据。

【问题讨论】:

    标签: ios objective-c uiimageview base64


    【解决方案1】:

    我找到了答案。我自己的代码是正确的。问题是在 base64 代码中添加了一个换行符。这是我的新代码:

    [ImageView setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[ImageData stringByReplacingOccurrencesOfString:@"\n" withString:@""]]]]];
    

    我有一个有效的 base64 代码,但因为我是通过网络套接字发送它,网络套接字每次发送 1024 个字符,并且在 1024 个字符之后有一个不需要的换行符。

    【讨论】:

    • 根据你自己的回答,你根本没有base64编码的图片。您的问题在于如何获取图像数据的 URL。这是一个很大的不同。
    【解决方案2】:

    @侯赛因 MK.. 使用下面的代码

    [ImageView setImage:[decodeBase64ToImage:ImageData]]]];
    

    //调用这些方法将BASE64转换为Image

      - (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
              NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
              return [UIImage imageWithData:data];
            }
    

    快乐编码..

    在下面编辑了答案,试试这个。

    编码:

    - (NSString *)encodeToBase64String:(UIImage *)image {
     return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
    }
    

    解码:

    - (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
      NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
      return [UIImage imageWithData:data];
    }
    

    //代码

    NSData* data = UIImageJPEGRepresentation(image_B64_encoded, 1.0f);
    NSString *strEncoded = [Base64 encode:data];
    NSData* data = [Base64 decode:strEncoded];
    NewImageimage.image = [UIImage imageWithData:data];
    

    //这样,你就可以轻松设置在UIImageView

    【讨论】:

    • 它不工作。我使用这段代码,但是当我设置 UIImageView 的图像时,它给了我一个空白的 UIImageView。 :-(
    猜你喜欢
    • 2019-06-27
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 2013-04-16
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    相关资源
    最近更新 更多