1.主要解决问题
- 微信二维码图片长按 无法识别问题解析----解决方法:设置精度为H
- 二维码生成为失败,即[filter outputImage]=nil----如果字符串过长可能会生成失败,可以提高精度,比如设置精度为L
2.iOS原生生成二维码代码
+ (CIImage *)createQRForString:(NSString *)qrString inputCorrectionLevel:(NSString *)level{
// 1. 创建一个二维码滤镜实例(CIFilter)
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
// 滤镜恢复默认设置
[filter setDefaults];
// 2. 给滤镜添加数据
NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding];
// 使用KVC的方式给filter赋值
[filter setValue:data forKeyPath:@"inputMessage"];
// 3.设置二维码精度
[filter setValue:level forKey:@"inputCorrectionLevel"];
// 4. 生成二维码
CIImage *image = [filter outputImage];
return image;
}
3.精度值(inputCorrectionLevel)具体区别
具体作用:
1.网上通用说法是一般用来添加logo
2.实际使用过程中发现,精度对字符串长度有影响. 当字符串过长时,精度为H时可能会生成失败
L水平 7%的字码可被修正
M水平 15%的字码可被修正
Q水平 25%的字码可被修正
H水平 30%的字码可被修正
网友评论