二维码生成器
在线生成自定义二维码,支持文本、网址、名片,可调整颜色和大小
请输入内容后生成二维码
什么是二维码生成器?
二维码生成器会把文本、网址、联系方式或其它短内容编码成手机和扫码设备能快速识别的方形条码。二维码常用于海报、标签、菜单、产品包装、桌牌、内部指示牌、活动签到等场景,适合替代手动输入长链接。一个好的二维码不只是“生成出来”,还必须容易被扫到:前景和背景对比度、尺寸、留白区、印刷质量、扫码距离、编码内容长度都会影响识别效果。纠错等级能让二维码在轻微污损或视觉装饰下仍可读取,但等级越高、内容越长,图案也可能越密。正式发布前,应在真实光线下用手机扫描导出的 PNG 或 SVG,尤其是换了颜色或使用长 URL 时。
使用方法
使用步骤
- 在输入字段中输入要编码的内容,如URL、文本或联系信息
- 根据需要调整前景色、背景色和二维码大小
- 选择适当的纠错级别 - 更高级别提供更好的抗损性
- 点击'生成二维码'按钮创建二维码
- 预览验证后下载PNG或SVG格式图片
扫描技巧
- 在打印或发布二维码之前,至少在一部手机上测试,尤其是在更改颜色或大小后。
- 保持前景和背景之间的强对比度,并在二维码周围留出足够的空白边距,以便扫描器检测。
使用场景
技术原理
QR Code 标准化为 ISO/IEC 18004:2015,定义了 40 个尺寸版本:版本 1 为 21×21 模块矩阵,每个后续版本每边增加 4 个模块,因此版本 40 为 177×177。“模块”是网格中的一个黑色或白色方块。三个固定的 7×7 定位图案位于左上角、右上角和左下角,使扫描器无论旋转角度如何都能锁定方向;从版本 2 开始,在规则网格上添加较小的 5×5 校准图案以校正透视畸变,定位图案之间有一条一模块宽的时序图案用于建立模块间距。<br /><br />载荷字节使用基于 GF(2^8) 的 Reed-Solomon 纠错进行封装,这使得部分被遮挡的二维码仍能解码。四个等级为:L = 恢复最多 7% 的码字,M = 15%,Q = 25%,H = 30%。选择 H 级可在二维码中心叠加约占 20% 面积的 logo 而不丢失可读性,代价是同一版本下可用数据码字更少。数据本身在四种模式之一下编码——数字模式(每 3 位数字 10 比特)、字母数字模式(每 2 个字符 11 比特,来自 45 个符号的字符集)、字节模式(8 比特,非 ASCII 时通常为 UTF-8)和汉字模式(每 Shift_JIS 字符 13 比特)——编码器选择能覆盖所有输入字符的最高效模式。<br /><br />编码后,比特流与八个掩码图案之一进行 XOR 运算,以避免大面积单色区域和定位图案的误检测;编码器根据罚分规则(标准第 7.8.3 节定义)评估所有八个掩码,并将获胜掩码 ID 写入定位图案旁的格式信息条带。格式和版本元数据分别由 BCH(15,5) 和 BCH(18,6) 码保护。在浏览器中,qrcode npm 库生成矩阵并通过 CanvasRenderingContext2D.fillRect 渲染到 HTML <canvas> 上,或输出 SVG <rect> 元素;在支持的设备上,BarcodeDetector API(Android 上的 Chrome、Safari 16.4 起)可直接从摄像头帧解码,无需外部库。
- 标准:ISO/IEC 18004:2015——40 个版本,版本 N 为 (4N+17) × (4N+17) 模块,即 V1=21×21,V10=57×57,V40=177×177
- 定位图案和校准图案:三个固定的 7×7 定位图案位于左上/右上/左下用于旋转锁定;V2 起在规则网格上添加 5×5 校准图案用于透视校正;定位图案间的一模块时序图案设定模块间距
- 纠错(基于 GF(2^8) 的 Reed-Solomon):L=7%、M=15%、Q=25%、H=30% 的码字可恢复——H 级可容忍中心约 20% 的 logo 遮挡
- 数据模式和比特成本:数字模式每 3 位数字 10 比特,字母数字模式每 2 个字符 11 比特(45 个符号的字符集),字节模式 8 比特(实际为 UTF-8),汉字模式每字符 13 比特(Shift_JIS)
- 容量示例(V40-L):7089 个数字、4296 个字母数字、2953 个字节、1817 个汉字字符——H 级容量大幅下降
- 掩码:8 个掩码图案按 4 条规则罚分评估(ISO/IEC 18004 §7.8.3);获胜掩码 ID 写入由 BCH(15,5) 保护的格式信息条带;版本信息使用 BCH(18,6)
- 浏览器渲染和解码:qrcode.js / qrcode(npm)输出 canvas fillRect 或 SVG <rect>;BarcodeDetector API(Android 上的 Chrome、Safari 16.4+)直接从摄像头帧解码二维码,无需 JS 库
示例
网址链接
输入: https://toolact.com
这条 19 个字符的 URL 在纠错等级 L 下,可以放进最小尺寸的二维码
(Version 2,25x25 模块)。当深色前景印在浅色背景上、并且四周
至少留出 4 个模块的安静区时,大多数手机摄像头不到一秒就能识别
并解码。纯文本内容
输入: SKU-7842-AB
适合用来放产品规格、序列号或简短指令等非 URL 内容。扫码后会还原为
字面文本,多数扫描器会把它复制到剪贴板,或在结果页中直接展示。WiFi 接入字符串
输入: WIFI:T:WPA;S:GuestNetwork;P:welcome2024;;
WIFI: 前缀会让操作系统弹出「加入网络」操作,而不是把内容当作普通
文本处理。T 是认证类型(WPA、WEP 或 nopass),S 是 SSID,P 是
密码。只要密码不含特殊字符,大多数手机都接受这种不带引号的写法。联系人卡片(vCard)
输入:
BEGIN:VCARD
VERSION:3.0
FN:Alex Chen
ORG:ToolAct
TEL:+1-555-0142
EMAIL:alex@toolact.com
END:VCARD
扫码后手机会提示保存一个名为 'Alex Chen' 的新联系人,并自动填入
电话、邮箱和组织信息。vCard 3.0 兼容性最好;vCard 4.0 字段更多,
但并非每个扫描器都能识别。支付内容
输入: bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa?amount=0.01
比特币钱包扫码后会自动填入收款地址
'1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa' 和金额 '0.01' BTC。
'bitcoin:' URI Scheme(BIP-21)是 BTC 收款二维码的事实标准;
以太坊使用 'ethereum:'(EIP-681),门罗币使用 'monero:'。常见问题
二维码可以编码什么内容?
你输入框中的任意文本——URL、纯文本或格式化字符串。页面会把你输入的内容直接编码进二维码。没有针对结构化数据类型的特殊表单;请粘贴你想编码的确切文本。
二维码是本地生成的吗?
是的。页面通过 JS 库(通常是 qrcode-generator)将二维码渲染为 SVG 或 canvas。任何内容都不会上传——你的 URL 或文本不会经过网络。
应该选择哪个纠错等级?
L(约 7% 恢复率)、M(约 15%)、Q(约 25%)、H(约 30%)。H 扫描最慢,但能让二维码在严重损坏或中央叠加 logo 时仍可识别。普通二维码用 M 即可;嵌入 logo 或印在易磨损表面时选 H。
一个二维码能装多少数据?
最多 4296 个字母数字字符、7089 位数字或 2953 字节(取决于版本 1-40 和纠错等级)。长 URL 没问题,但数百字节以上的大文本载荷会让二维码模块密集,远距离或小印刷尺寸下难以扫描。如果目标偏文本,请使用短链。
可以在中间加 logo 吗?
可以——二维码的纠错能力允许你叠加小图而不破坏解码。请将 logo 控制在二维码面积的 25% 以内,并使用 Q 或 H 纠错等级。发布前务必用多部手机相机实测扫描。
支持哪些输出格式?
PNG(栅格化)、SVG(矢量、可无限缩放),有时还有 PDF 或 EPS 用于印刷。SVG 最适合印刷和标牌;PNG 用于屏幕和聊天足矣。
为什么打印小尺寸时扫不出来?
印刷分辨率是最常见的原因。每个黑白模块在指定扫描距离下至少需约 0.4 mm。名片(30 cm 扫描)大约需要 2 cm 的二维码。广告牌(5 m+ 扫描)需要更大的模块。如果必须缩小,请减少数据长度并使用更低的纠错等级。