2017-10-11 51 views
0

我試圖插入一個底座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

回答

0

據我所知你有你的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