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;
到这里就大功告成了!如果有不对的地方,请多多指教!欢迎你对本人的来撩!