下面先说明二维码的定义与基本规则,再给出示例和常见问题。
二维码的定义与组成
二维码通常指 QR Code,是由黑白方形模块组成的矩阵式条码,1994 年由日本 DENSO WAVE 公司发明,可以存储网址、文字、名片、Wi-Fi 配置等信息,用手机摄像头即可识别。
- 版本 1–40,边长 = 17 + 4 × 版本号
- 纠错等级 L/M/Q/H
- 静区宽度至少 4 个模块
- 深色模块与浅色背景要有足够对比度
- 反色(浅色码深色底)部分扫码软件无法识别
示例
输入:大写字母与空格:HELLO WORLD,纠错等级 M
生成结果:版本 1,21×21 模块,字母数字模式,数据 11 字节
说明:加上四周各 4 模块的静区,整图为 29×29 模块;纠错等级 M 可恢复约 15%的损坏。
计算方法
二维码边长(模块数)= 17 + 4 × 版本号。例如版本 5 为 37×37。打印尺寸可按“模块数 × 单个模块尺寸”估算,再加上两侧各 4 模块静区;扫描距离大约是二维码边长的 10 倍左右,例如 3 厘米的码适合在约 30 厘米处扫码。最大容量(版本 40、L 级):数字 7089 个、字母数字 4296 个、字节 2953 个、汉字 1817 个。
相关标准
QR Code 的国际标准是 ISO/IEC 18004。中国有自主的汉信码标准(GB/T 21049)。DENSO WAVE 持有 QR Code 专利但宣布不行使,任何人都可免费生成和使用。“QR Code”是 DENSO WAVE 的注册商标。
JavaScript 示例
下面是用 JavaScript 实现的写法,可以按需要修改:
// 使用 qrcode 库(npm install qrcode)
import QRCode from 'qrcode';
const url = await QRCode.toDataURL('https://www.123wen.cn/', { errorCorrectionLevel: 'M', margin: 4 });
document.querySelector('img').src = url;
本站的二维码生成器工具可以直接在网页中使用,无需安装,适合快速得到和核对结果。
常见问题
【二维码会过期吗?】静态二维码不会过期,只要内容(如网址)仍然有效就能一直使用。
【为什么二维码扫不出来?】常见原因是尺寸太小、对比度不足、反色、Logo 遮挡过多或缺少静区。
【彩色二维码能扫吗?】深色码、浅色底且对比度足够时可以扫,浅色码或反色可能无法识别。
文中示例可以在本站对应工具中核对。