美文网首页简书文章非首页投稿·找回文字的力量程序猿日记
科普 | 简单聊聊二维码,我们每天扫的二维码是怎么回事?

科普 | 简单聊聊二维码,我们每天扫的二维码是怎么回事?

作者: 芥末炒皮蛋 | 来源:发表于2017-06-18 14:24 被阅读3371次
    个性二维码镇个楼! 图源:百度百科

    我们现在日常生活中常用的二维码是QR码,是二维码的一种。

    历史

    QR码是在1994 年由日本 DENSO WAVE公司发明,为了便于追踪汽车零件而设计,原本QR码在日常生活中的应用推广不太顺利,解码器也多种多样,直到最近几年才流行起来。

    现在QR码在我们生活中如此流行,我认为有那么几点原因:

    1.众多二维码中,QR码(Quick Response Code),名字上就能看出,超高速识读。快!这点最重要,另外就是其有特定的汉字表示模式,编译汉字时比较简约,由此脱颖而出。

    2.是智能手机的普及流行,识别二维码是需要扫描枪的,多年前的小灵通可办不到啊,现在智能手机的摄像头充当了扫描枪,相当于每个人手里都有一个解码器啊!

    3.这点要归功于微信,强势崛起的微信带动了二维码的普及,同时微信自带的二维码解码功能相对而言较强。

    原理

    你观察一下一般的QR码,会发现,角上肯定会有3个小正方形套着一个小方块,这是用来定位的,为什么不是4个,因为3个角就能确定一个正方形了,所以你用手机扫二维码不用刻意对正,甚至倒着扫也能识别。右下角的小方块是校正图形。

    中间的小正方形就是编码数据,原理是将数据转化成2进制,黑块为1,白块为0,再加上纠错码依次填充进编码区,如下图:

    图源于谷歌

    假如数据为abc,它储存的时候会存为abcabcabcabc……,所以再简单的数据,看上去都是黑白交错,填满的。另外这样的好处是有容错性,下面会讲到。

    还有一个问题,数据填充后极有可能会有大面积的黑白块,这样是不利于识别的。所以就会用到掩码图案(就是固有的黑白块图案,一共有8种,见下图)来与数据进行“异或”运算,作用是把大面积的黑白块打散,黑白块的比例能接近1:1,易于识别。

    8种掩码图案

    所以相同的数据,因为掩码的不同,可以形成不同的二维码。

    另外QR码上别的位置,在简单的二维码上不是必要的,相对复杂,这里不再赘述,有兴趣自己谷歌。

    图源于谷歌

    特性

    最主要的就是能容错

    刚讲了,QR码编译一条数据会重复编译,相当于信息冗余,其纠错范围分为4个级别,分别为 7%、15%、25% 、30%,也就是可以遮住大致相应范围依旧能被识别读取,举个例子:

    数据为abc  ,7%级别:储存为abcabc,30%:储存为abcabcabcabcabc,多写几遍,图形相对复杂。

    7%容错率 30%容错率

    这是两个相同的二维码,都指向我公众号

    所以一般的二维码在中间有logo,中间相对安全,基本不影响识别。

    但是像关键位置,如定位部分,那几个方块破损的稍微多一点就无法定位识别了。

    容量大小:

    官方的QR码一共有40个规格

    Version 1是 21 x 21的矩阵,

    Version 2是 25 x 25的矩阵,

    ……

    依次类推到Version 40是177x177的矩阵。

    按照40*40的标准来算的话,可储存1600bit=200个字节=100个汉字

    容量理论上来讲远不止这些,你可以想象无数的黑白点在一个方框内,但是这个瓶颈就在于扫描设备了,无法读取,也就没有意义。

    事实上要储存大数据的话,直接放个链接进去就行了。

    变化:

    二维码的颜色形状都是可以改变的,如

    像上面这样个性的二维码,都是能长按识别的,你可以试试。

    但是万变不离其宗,几个关键的位置,像定位,校正位,那4个方块一眼就能看到。

    颜色方面的话,数据区必须是要有色差的,这点很好理解。

    这种个性码能不能被识别,还要看扫描设备是否强力,微信自带的相对强大,基本都能识别。

    目前来讲,二维码已经应用得及其广泛了,由于肉眼无法识别二维码内容,大家扫描二维码前还是要留个心眼,病毒,假链接等是很容易藏匿其中的

    我的公众号: 不曾关注    二维码,也挺好看的吧!

    相关文章

      网友评论

      • HY即刻:已关注公号,希望写的详细一些。
        HY即刻: @HY即刻 谢谢
        芥末炒皮蛋: @HY即刻 详细的话,在我公众号里找这篇文章,底下阅读原文里我链接了一篇,有关于编码的
      • 曹门霞客行:你是来秀公众号二维码的吗?
        芥末炒皮蛋: @曹门霞客行 😁本来就是我号里的文章,见谅见谅😂
      • 537cdf09607e:通过这篇文章,对二维码有个很好的理解,知道了三个角的正方形原来是用于定位,右下角的小正方形是用于校验
        芥末炒皮蛋: @喵喵神超神 应该都是取异或,但是选择8个掩码中的哪一个,这本身也有算法,这个我没多研究,见谅
        537cdf09607e:@芥末炒皮蛋 我对那个异或掩码挺有好奇,除了异或还有其他的算法嘛
        芥末炒皮蛋: @喵喵神超神 嗯嗯
      • 目耕道人:才女。
      • 苏羽Loner:唯一一篇非签约作者首推可以放二维码的文。😂😂
        芥末炒皮蛋:@苏羽Loner 哈哈,我也发现了,别的几篇有二维码的投稿都不好投,全被拒了呢。。。
      • 掉鏈自行車:我可以说那个联图网的二维码美化是我开发的吗~哈哈哈,谢谢分享:relaxed:
        61b3bf0da352:@掉鏈自行車 很厉害:+1:
        芥末炒皮蛋: @掉鏈自行車 好像是的呢!好像不太好找,别人问我,我再去找,找不到了。。。。
      • 泽木息:不错耶
      • 遇见美好life:有意思!
        芥末炒皮蛋: @遇见美好的明天 嗯,谢谢
      • xiaohesong:扫到了,不曾关注.
      • 61b3bf0da352:学习了,你公众号是什么。。。
        芥末炒皮蛋: @狮子小十七 叫 不曾关注 ,你扫文章里后面的二维码也可以的,我好像资料里写了呀,刚玩,看不到的吗?
      • 6e74e63d38fb:挺棒的科普文=_=虽然看了之后还是不知道自己做的二维码为什么可以直接扫,而不能长摁识别(二维码旋转了45度放在浅灰色为主背景中)
        1570af57a3ad:长按是微信,软件实现; 应该是用javascript.
        芥末炒皮蛋: @这喵竟然有丁丁 嗯,这种美化过的识别率确实不能百分百,可以试试色差大点,还有定位图案要规矩一点
      • 云吞悠扬:有趣
        芥末炒皮蛋: @云吞悠扬 谢谢
      • 50862d60a94f:赞👍
        芥末炒皮蛋: @zhangpeter 谢谢
      • 2bd87e36d221:最后两张识别不了嘛~
        芥末炒皮蛋:咦,试了一下,这篇文章里最后几张我都能扫描识别:stuck_out_tongue_winking_eye:
        芥末炒皮蛋: @shiyang_f64a 你试试我公众号里的这篇文章,长按下面两张图片也可以识别的,嗯
        芥末炒皮蛋: @shiyang_f64a 嗯,发现了,估计还是太花了点,但是在我公众号文章里面长按是可以完美识别的,我觉得是定位那里太花哨的缘故,这种码识别率确实不太高,也要看扫码器的辨识度了。
      • 芥末炒皮蛋:谢谢大家的支持,还收获了第一次赞赏,谢谢那位朋友啊!
        掉鏈自行車:@开鲸鱼咖啡的七七 我开发的!!!哈哈哈,看这里:http://www.liantu.com/meihua/
        芥末炒皮蛋: @开鲸鱼咖啡的七七 网上有美化的网站的,普通的像草料二维码就可以了,别的你可以搜索一下
        大懒懒懒鲸鱼:请问那种很花哨的二维码是怎么做出来的呢?

      本文标题:科普 | 简单聊聊二维码,我们每天扫的二维码是怎么回事?

      本文链接:https://www.haomeiwen.com/subject/fgiiqxtx.html