1.首先是获取后台给的base64 数据 ,一般是字符串类型的数据。
例如:data:image/png;base64,iVB.......................................... 是这样的数据,其中:data:image/png;base64, 是固定的前缀数据,是固定的格式。注意是:data:image/png;base64, (包括","符号) data:image/png;base64, (包括","符号) data:image/png;base64, (包括","符号)重要的事说三遍 OK。
2.根据上面拿到的数据进行base64 的(字符串转图片方法)把《字符串》转换成UIimage 图片
具体方法是 :(1)首先是去除《字符串》的前缀 -----(data:image/png;base64, )
(2)其次就是对字符串进行去除换行符的去除 和 空字符的去除,使其得到一个标准的可以转换图片的 base64 字符串数据
下面贴一段代码:
// 获取后台给的字符串数据
NSString*str = json [@"checkCode"];
//判断数据为空的情况
if(!str.length) {
return;
}
//进行首尾空字符串的处理
str = [strstringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //去除掉首尾的空白字符和换行字符
//进行空字符串的处理
str = [strstringByReplacingOccurrencesOfString:@"\r" withString:@""];
//进行换行字符串的处理
str = [strstringByReplacingOccurrencesOfString:@"\n" withString:@""];
WJLog(@"%@",str);
//去掉头部的前缀//data:image/jpeg;base64, (可根据实际数据情况而定,如果数据有固定的前缀,就执行下面的方法,如果没有就注销掉或删除掉)
// str = [str substringFromIndex:23]; //23 是根据前缀的具体字符长度而定的。
NSString*encodedImageStr = str;
//进行字符串转data数据 -------NSDataBase64DecodingIgnoreUnknownCharacters
NSData *decodedImgData = [[NSData alloc] initWithBase64EncodedString:encodedImageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
//把data数据转换成图片内容
UIImage*decodedImage = [UIImage imageWithData:decodedImgData];
// 把图片赋值给图片视图去接受
self.VerificationCodeImg.image = decodedImage;
到这里就大功告成了!如果有不对的地方,请多多指教!欢迎你对本人的来撩!
网友评论