二维码的容错率起到了什么作用!
文章目录
前几天和大家分享了一篇 javascript生成二维码,实现微信跳转
里面提到了一个二维码的容错率,知道今天发现了一个bug ,又重新找了找关于javascript 生成二维码的资料.回头我会整理一下,提供微信端跳出内置浏览器的最佳方案
什么是容错率
顾名思义,就是容许犯错的概率
二维码的容错率
是指生成的二维码允许犯错吗? 不是!
二维码的容错率,是指你生成的二维码就算被遮挡了一部分,或者有一部分没有完全显示出来,当时用户通过各种各样品牌的手机都能扫描成功,这个被遮挡部分在全部的比值,就相当于一个容错率
所以二维码的容错率,跟贴切的叫法是,二维码的冗余度有多大.
什么是冗余度
就是你担心自己心爱的自行车被盗,所以买了一把锁把前轮锁在大树上,感觉还是不放心,然后又买了第二把锁,把后轮又锁在了电线杆上.
发挥你的想象力,大树和电线杆离的很近很近
这可以说就是一种冗余.当然这样做的目的就是,盗车的人就算弄开了前轮的锁,他依然拿不走自行车.
什么是二维码的冗余度
二维码的冗余度分为4种 ,L、M、Q、H 4个等级
- L 7%
- M 15%
- Q 25%
- H 30%
上面的数字分别表示当前生成的二维码被遮挡 (7%,15%,25%,30% )以后,依然能被用户扫描识别.
就像我博文最上面的二维码,中间被一个域名地址覆盖了近20% 的区域,如果我不选用 H 级别,估计用户扫描不会被手机识别.
二维码是如何实现这个冗余度的
整个图片显示的信息被重复平铺在一个二维码中.
就好比我博客的广告,其实在一处显示就已经够烦的了,然后事与愿违,当然真实的目的并不是让你们更烦.
在这个股票熊市的行情中,还要每天坚持发博文,你们的一次点击或许就是一种支持,所以我的广告会在不同的地方出现很多次.
这样你就算看不到左侧上方的,就算你无视右侧上方,当然你也不会理博文最小面的,但是右小角那个漂浮的广告一定挑战了你的心里底线,压抑什么,赶紧点啊.
所以二维码在生成的时候,会根据容错率来重复平铺某一个信息
比如,你希望在二维码中 生成 "一介布衣" 四个字.容错率是 30%
那么,实际二维码展示出来的效果可能是下面这个样子的
一介布衣一介布衣一介
布衣一介布衣一介布
一介布衣布衣一介布衣
所以你的手机扫描到了左上角,左上角,右下角,中间等任何一个部分,基本都能100% 识别出来 4个字 "一介布衣"