All Tools / Blog / 如何免费生成二维码

如何免费生成二维码

2 min read

二维码将文本编码为手机摄像头无需任何应用即可识别的二维图案。大多数人用它来传递网址,但它同样支持 WiFi 密码、联系人名片、邮件地址、电话号码和纯文本。以下是生成方法。

在浏览器中操作

将文本或网址粘贴到二维码生成器中,下载结果即可。工具完全在浏览器中运行——数据不会发送到服务器。

用于印刷:下载 1000×1000 像素或更大尺寸。用于数字场景(网站、演示文稿):300×300 像素已足够。

可编码的内容类型

内容类型 输入格式
网址 https://example.com
纯文本 任意文本字符串
邮件 mailto:user@example.com
电话号码 tel:+8613812345678
短信 SMSTO:+8613812345678:您的消息
WiFi WIFI:T:WPA;S:网络名称;P:密码;;
位置 geo:39.9042,116.4074
vCard(联系人) BEGIN:VCARD...END:VCARD

WiFi 二维码最为实用——访客扫码即可连网,无需读出密码。

Python:qrcode

pip install qrcode[pil]
import qrcode

# 基本网址
qr = qrcode.make("https://example.com")
qr.save("qr.png")

自定义纠错级别和尺寸:

import qrcode
from qrcode.constants import ERROR_CORRECT_H

qr = qrcode.QRCode(
    version=None,                       # 自动选择版本
    error_correction=ERROR_CORRECT_H,   # 可恢复 30% 损坏
    box_size=10,                        # 每个模块的像素数
    border=4,                           # 静区宽度(模块数)
)
qr.add_data("https://example.com")
qr.make(fit=True)

img = qr.make_image(fill_color="black", back_color="white")
img.save("qr.png")

纠错级别决定二维码损坏多少后仍可识别:

级别 最大损坏 适用场景
L 7% 干净的数字屏幕
M 15% 通用场景
Q 25% 轻微磨损的表面
H 30% 印刷在实物上

JavaScript:qrcode

npm install qrcode
const QRCode = require('qrcode');

// 保存为 PNG 文件
QRCode.toFile('qr.png', 'https://example.com', { width: 300 }, err => {
    if (err) throw err;
});

// 获取 Data URL(用于嵌入 HTML 或邮件)
const url = await QRCode.toDataURL('https://example.com', { width: 300 });
// url = "data:image/png;base64,..."

// 获取 SVG 字符串(最适合印刷)
const svg = await QRCode.toString('https://example.com', { type: 'svg' });
require('fs').writeFileSync('qr.svg', svg);

用于印刷材料时使用 SVG——可无限放大而不失真。

WiFi 二维码格式

完整格式:

WIFI:T:WPA;S:我的网络;P:我的密码123;;

字段说明:

  • T:加密类型(WPAWEP,或开放网络留空)
  • S:SSID(网络名称,区分大小写)
  • P:密码
  • H:true 可选——如果网络是隐藏网络则添加

Android 和 iOS 摄像头原生支持扫描,无需安装任何应用。

二维码尺寸与扫描距离

太小的二维码在光线不足或角度偏斜时无法可靠识别。

印刷尺寸 可靠扫描距离
2 × 2 厘米 最远 20 厘米
4 × 4 厘米 最远 40 厘米
8 × 8 厘米 最远 80 厘米
20 × 20 厘米 最远 2 米

通用规则:扫描距离约为印刷尺寸的 10 倍。海报上的二维码需要远大于名片上的二维码。

要点总结

  • 网址、WiFi 密码、联系人名片和纯文本均可编码为标准二维码。
  • 印刷材料使用 SVG 输出——可无限缩放而不失真。
  • 实物印刷用纠错级别 H(30% 恢复率);纯数字场景用 L。
  • WiFi 格式:WIFI:T:WPA;S:网络名称;P:密码;;
  • 扫描距离约为印刷二维码尺寸的 10 倍。