iOS 微信二维码图片长按无法识别

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%的字码可被修正
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容