07月26, 2017

QR Code的随笔

封面图来自于qr-code-generator

或许在10年多你都没有听说过二维码,不过现在,在这个信息化的社会中,仿佛它已经无处不在了,下面就简单的介绍一下:

什么是二维码?

QR图码(全称为快速响应矩阵图码;英语:Quick Response Code)是二维条码的一种,于1994年由日本DENSO WAVE公司发明。

一般呈正方形,常见的是黑白两色。在3个角落,印有较小,像“回”字的正方图案。这3个是帮助解码软件定位的图案,用户不需要对准,无论以任何角度扫描,数据仍然可以正确被读取。

QR_Code_Structure

存储容量

QR码设有1到40的不同版本(种类),每个版本都具备固有的码元结构(码元数)。(码元是指构成QR码的方形黑白点。)

“码元结构”是指二维码中的码元数。从版本1(21码元×21码元)开始,在纵向和横向各自以4码元为单位递增,一直到版本40(177码元×177码元),目前版本40可以存储中文汉字最多984字符(采用UTF-8)。

容错能力

QR码有容错能力,QR码图形如果有破损,仍然可以被机器读取内容,最高可以到7%~30%面积破损仍可被读取,理所当然,容错率愈高,QR码图形面积愈大,所以一般折衷使用15%容错能力。

  • L档次,约7%的字码可被修正
  • M档次,约15%的字码可被修正
  • Q档次,约25%的字码可被修正
  • H档次,约30%的字码可被修正

结合存储容量,两者有对应的关系大致如下: alt

如何生成二维码?

关于具体的编码原理,本文就不细说了,如果想了解的,可以去看一下这篇文章《二维码的生成细节和原理》,写的非常详细,况且如今,已经有很多的在线服务就能方便的帮你生成二维码,例如:

也有很多可以运行在本地的服务,比如说:

下面就简单说一下libqrencode

如果你用MAC,那么安装就很简单了直接运行brew install qrencode即可,完了以后,就可以调用qrencode的命令模式了,具体的文档,你可以通过man qrencode查阅,下面就简单句两个例子:

# 生成指定字符串的二维码
qrencode -o ./qrcode.png 'https://itony.net/qrcode-note'

# 生成无边框指定字符串的二维码
qrencode -o ./qrcode.png 'https://itony.net/qrcode-note' -m 0

# 生成透明背景指定字符串的二维码
qrencode -o ./qrcode.png 'https://itony.net/qrcode-note' --background ffffff00

# 自定义图片尺寸的
qrencode -o ./qrcode.png 'https://itony.net/qrcode-note' -s 6

以上就是最简单的例子了,仅供参考。

参考链接
  1. https://zh.wikipedia.org/wiki/QR%E7%A2%BC
  2. http://www.qrcode.com/zh/

本文链接:https://itony.net/post/qrcode-note.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。