基地64图像转换成UIImage的 - 目标C

基地64图像转换成UIImage的 - 目标C

问题描述:

我试图插入一个底座64图像转换成Objective-C中的uImage我做了以下内容:基地64图像转换成UIImage的 - 目标C

我有用户的图像成NSURL

NSURL *url = [NSURL URLWithString: [fetchDefaults objectForKey:@"img"]]; 

然后我投的网址,为的NSString

NSString *string=[NSString stringWithFormat:@"%@",url]; 

然后我清理字符串,并添加前缀“数据:应用程序/八位字节流;的base64”,也试图与“数据:图像/ JPG;的base64 ,“

NSMutableString *tempStr = [NSMutableString stringWithString:string]; 
      [tempStr replaceOccurrencesOfString:@" " withString:@"+" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [tempStr length])]; 
       NSString *temp = [[NSString stringWithFormat:@"data:application/octet-stream;base64,%@",tempStr] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

最后的字符串转换为一个NSData要插入的uImage

NSData *dat = [[NSData alloc]initWithBase64EncodedString:temp options:NSDataBase64DecodingIgnoreUnknownCharacters]; 
      [avatar setImage:[UIImage imageWithData:dat]]; 

尽管DAT的值不为零,当我设置图像的UIImage的图像不显示,有什么想法我做错了什么?

+0

'然后我投的网址,进入NSString',这不是一个演员,你应该使用'的NSString *字符串= [URL absoluteString ];',不是?而你所做的一切都毫无意义。为什么添加“@”数据:application/octet-stream; base64,%@“'应该使它成为UIImage?网址中发生了什么?你能否给我们提供'[fetchDefaults objectForKey:@“img”]的价值?如果它是一个URL(真的),那么你需要下载它是有道理的。 – Larme

+0

在'fetchDefaults'我有一个字符串类似的东西'iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAq1BMVEX /// 8ARIvvhhs7cKb7/P3G0uIAQooERo0PTpG9zN5Meanl6fHN2 + N // vyYs9Dy9fn + ... TkSuQmCC'这个字符串我需要添加'@“的数据:应用程序/八位字节流; BASE64,% @“'表示这是一个基本的64字符串,然后我需要添加到UIImageView,但我不知道它是否正确的方式,我这样做。 – mareyes

+0

“我需要添加@”data:application/octet-stream; base64,%@“'”为什么?不是特别的。如果它已经正确完成,那么您不必那样做。 – Larme

据我所知你有你的base64字符串fetchDefaults

/*Get base64 string*/ 
NSString *base64 = [fetchDefaults objectForKey:@"img"]; 

使用该NSData的类别:https://searchcode.com/codesearch/view/40028750/

/*Convert base64 to NSData object*/ 
NSData *data = [[NSData alloc] initWithBase64EncodedString:base64]; 
/*Convert data to UIImage object*/ 
UIImage *image = [[UIImage alloc] initWithData:data]; 
+0

'initWithBase64EncodedString:options:'自iOS7以来就已经存在。不需要一个类别。 – Larme

+0

对不起。我很久没有使用Objective-C了。 – yoninja

+0

这就是我需要的!我实现了这一切,一切都OK!谢谢哥们! – mareyes