分享最实用的技术,创造更大的价值

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