分享最實用的技術,創造更大的價值

xcode iOS 獲取后臺圖片base64data數據轉換UIimage圖片失敗問題解決

base64 數據 一般是字符串類型的數據,格式如:data:image/png;base64,xx...........................這樣的數據。


首先,data:image/png;base64, 是固定的前綴數據,需要刪除。注意,包含 逗號


其次,對字符串進行換行符空字符去除,使其得到一個標準的可以轉換圖片的 base64 字符串數據。


這樣就可以在xcode中,將base64字符串轉為nsdata,再轉為uiimage了

xcode iOS 獲取后臺圖片base64data數據轉換UIimage圖片失敗問題解決


            //strImgDataNew 為base64 NSString
            
            //進行首尾空字符串的處理
            strImgDataNew = [strImgDataNew stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //去除掉首尾的空白字符和換行字符
            
            //進行空字符串的處理
            strImgDataNew = [strImgDataNew stringByReplacingOccurrencesOfString:@"\r" withString:@""];
            
            //進行換行字符串的處理
            strImgDataNew = [strImgDataNew stringByReplacingOccurrencesOfString:@"\n" withString:@""];
            
            //去掉頭部的前綴//data:image/jpeg;base64, (可根據實際數據情況而定,如果數據有固定的前綴,就執行下面的方法,如果沒有就注銷掉或刪除掉)
            // str = [str substringFromIndex:23];   //23 是根據前綴的具體字符長度而定的。
            
            NSString*encodedImageStr = strImgDataNew;
            
            //進行字符串轉data數據 -------NSDataBase64DecodingIgnoreUnknownCharacters
            
            NSData *decodedImgData = [[NSData alloc] initWithBase64EncodedString:encodedImageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
            
            //把data數據轉換成圖片內容
            UIImage*decodedImage = [UIImage imageWithData:decodedImgData];


聯系
QQ
電話
咨詢電話:189-8199-7898
TOP