如何在UIImageView中显示base64图片?

52

我得到了这个Base64编码的gif图片:

R0lGODlhDAAMALMBAP8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAACH5BAUKAAEALAAAAAAMAAwAQAQZMMhJK7iY4p3nlZ8XgmNlnibXdVqolmhcRQA7

现在我想在我的iPhone应用程序中显示这个Base64字符串。

我可以通过使用WebView来实现这个目标:

aUIWebView.scalesPageToFit = NO;
aUIWebView.opaque = NO;
aUIWebView.backgroundColor = [UIColor clearColor]; 
[aUIWebView loadHTMLString:
  @"<html><body style=""background-color: transparent""><img src=""data:image/png;base64,R0lGODlhDAAMALMBAP8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUKAAEALAAAAAAMAAwAQAQZMMhJK7iY4p3nlZ8XgmNlnibXdVqolmhcRQA7"" /></body></html>"
 baseURL:nil];

使用UIImageView是否可以实现同样的事情?

11个回答

0

下载包含base64图像字符串的文本文件的代码片段,然后保存/读取文件,最后创建图像以在视图中显示

如果需要将图像解码为Base64,请单击此处

NSString *downloadUrl = "http://www.server.com/file.txt";
//
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: downloadUrl]];
//
// DOWNLOAD THE FILE
//
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue currentQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
    if (error) {

        NSLog(@"Download Error:%@",error.description);

    }
    if (data) {
        [data writeToFile:filePath atomically:YES];
        //
        // PROCESS BASE 64 STRING
        //
        NSString * fileContents = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
        //
        // PROCESS BASE 64 STRING
        //
        NSString *base64String = fileContents;
        NSURL *url = [NSURL URLWithString:base64String];
        NSData *imageData = [NSData dataWithContentsOfURL:url];
        //
        // CREATE IMAGE
        //
        UIImage *ret = [UIImage imageWithData:imageData];
        self.myImage.image = ret;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接