iOS 有关获取后台给的图片 base64data数据进行解析,

2018-06-12  本文已影响52人  iOS开发小学生

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;

到这里就大功告成了!如果有不对的地方,请多多指教!欢迎你对本人的来撩!

上一篇下一篇

猜你喜欢

热点阅读