基地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的图像不显示,有什么想法我做错了什么?
答
据我所知你有你的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];
'然后我投的网址,进入NSString',这不是一个演员,你应该使用'的NSString *字符串= [URL absoluteString ];',不是?而你所做的一切都毫无意义。为什么添加“@”数据:application/octet-stream; base64,%@“'应该使它成为UIImage?网址中发生了什么?你能否给我们提供'[fetchDefaults objectForKey:@“img”]的价值?如果它是一个URL(真的),那么你需要下载它是有道理的。 – Larme
在'fetchDefaults'我有一个字符串类似的东西'iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAq1BMVEX /// 8ARIvvhhs7cKb7/P3G0uIAQooERo0PTpG9zN5Meanl6fHN2 + N // vyYs9Dy9fn + ... TkSuQmCC'这个字符串我需要添加'@“的数据:应用程序/八位字节流; BASE64,% @“'表示这是一个基本的64字符串,然后我需要添加到UIImageView,但我不知道它是否正确的方式,我这样做。 – mareyes
“我需要添加@”data:application/octet-stream; base64,%@“'”为什么?不是特别的。如果它已经正确完成,那么您不必那样做。 – Larme