二维码阅读器能从图片文件或剪贴板截图里解出二维码内容,并告诉你码里存的是什么。它完全在浏览器中运行,并把结果归类为网址、邮箱地址、电话号码、WiFi 凭据、短信目标或纯文本。
解码是如何进行的
二维码把数据散布在一个个黑白小方块(称为「模块」)组成的网格里,并用三个大的定位方块帮助扫描器判断方向。基于 Reed-Solomon 编码的纠错让二维码能承受一定破损或叠加的 logo。本工具不自带解码器,而是对你提供的图片调用浏览器原生的 BarcodeDetector,只配置 qr_code 这一种格式。这能让页面保持轻量,但也意味着解码能否成功取决于浏览器支持,而非工具本身。由于检测器需要像素,图片会先按原始尺寸绘制到 canvas 上,所以上传裁剪紧凑的文件能同时提升速度和准确率。
支持的输入与限制
| 项目 | 接受范围 |
|---|---|
| 输入方式 | 拖拽、文件选择、剪贴板粘贴 |
| 图片格式 | PNG、JPEG、WebP、BMP、GIF、TIFF |
| 最大体积 | 10 MB |
| 条码类型 | 仅二维码(qr_code) |
| 每图读取数量 | 仅第一个检测到的码 |
列表之外的任何格式——SVG、HEIC、PDF 页面——都会在解码开始前被拒绝。如果浏览器缺少 BarcodeDetector,工具会立即报告,而不是无声地失败。
各类内容会被识别成什么
解码器返回原始文本,工具再用模式匹配把它分类。
- 网址(URL) — 以
http://或https://开头,或像example.com/menu这样的裸域名。裸域名在打开动作前会补上https://,但显示时仍保留原文。 - 邮箱 —
mailto:值,或任何形如name@domain.tld的文本。会显示发送邮件的按钮。 - 电话 —
tel:值,或长度至少 7 个字符的数字与分隔符组合。构造tel:链接时会去掉标点。 - WiFi — 以
WIFI:开头的文本。会提取 SSID 和安全类型用于显示。 - 短信 — 以
sms:或smsto:开头的文本。 - 文本 — 其余内容原样显示。
实操示例:一个 WiFi 码
一家咖啡馆印出的码里包含:
WIFI:S:CafeGuest;T:WPA;P:latte2024;;
结果卡片显示 WiFi: CafeGuest (WPA)。SSID 是 CafeGuest,认证类型是 WPA,而密码 latte2024 被刻意隐藏。卡片上没有操作按钮,因为本工具不会调用操作系统的 WiFi 连接界面。
第二个例子:从剪贴板粘贴一张发票截图,码的内容是 https://pay.example.com/inv/9381。卡片会在 URL 类型下显示完整网址,并附一个打开按钮。在你点击之前,不会发起任何请求。
第三个例子:一个内容为 +1 (555) 010-9999 的码会匹配电话模式,因为数字和分隔符加起来超过七个字符,于是卡片在 PHONE 类型下显示该号码。工具不会拨号,也不提供按钮——把号码复制到手机应用里需要你手动完成。
扫码技巧与链接安全
二维码是常见的钓鱼渠道,因为目标地址在你扫描之前是不可见的。本阅读器会在任何动作发生前把解码出的网址以文本形式展示,且打开按钮从不自动触发。几个习惯能让检查更可靠:
- 域名要从右往左读,而不是整串看。
pay.example.com.evil.net属于evil.net,不属于example.com。 - 不要轻信并非你创建的短链;像
bit.ly这类服务会把真实目标藏到跳转发生的那一刻。 - 比较协议。一个通过明文
http://到达的工资或银行页面是危险信号。 - 拿不准时,把网址复制出来,在隔离的浏览器配置里打开,而不是用你已登录的那个。
获得清晰扫描的建议
- 裁剪到二维码加上一小圈静区。检测器依赖定位方块周围的白色边距来定位符号;贴边裁掉会破坏识别。
- 上传前不要先缩小。截图工具有时会把分辨率减半,可能抹掉细密的模块网格。
- 如果照片上有反光或阴影横跨二维码,换一帧再试。纠错能处理破损,但处理不了过曝的一片区域。
- 先把 HEIC 照片转成 PNG 或 JPEG,因为 HEIC 不在支持格式列表内。
二维码解码失败的常见原因
- 分辨率过低或模糊。 斜角拍摄或在截图里被缩小的二维码可能丢失检测器所需的模块边缘。请紧凑裁剪并保留原始像素。
- 对比度不足。 灰底白码,或扫描偏色的米色表单,可能低于阈值。上传前轻微提高对比度往往就能解决。
- 破损或被遮挡。 纠错大致能容忍 30% 的损失,但超过这个程度的 logo 或折痕会让码无法读取。
- 静区太小。 码周围没有白边时,有些检测器即使模块清晰也无法定位外边界。
- 它不是二维码。 同一张照片里的一维条码会被忽略。
相关工具
常见问题
为什么提示 BarcodeDetector 不可用?
阅读器使用的是浏览器内置的 BarcodeDetector API。Chrome、Edge 等 Chromium 内核浏览器提供它,Firefox 和 Safari 一般没有。该 API 缺失时工具没有备用解码器,任何图片都读不出来——请换用 Chromium 内核的浏览器。
能读取 EAN-13 或 Code 128 这类一维条码吗?
不能。检测器只初始化为 qr_code 一种格式。图片里的商品条码不会在这里解码;EAN、UPC、Code 128 请使用专门的条码阅读器。
WiFi 二维码里的密码会被怎么处理?
只提取并显示网络名(SSID)和安全类型,P: 字段里的密码会被忽略,结果卡片也不提供加入网络的操作。因此它很适合在不把凭据放到屏幕上的前提下读取一个码。
点击打开按钮会自动访问链接吗?
不会。解码过程绝不会自动跳转。URL 结果会显示一个需要你主动点击的打开按钮,且链接带 rel=noopener,你可以先查看目标地址——这是防范二维码钓鱼的实用检查。
接受哪些图片格式,大小上限是多少?
支持 PNG、JPEG、WebP、BMP、GIF 和 TIFF,最大 10 MB。文件选择器接受任意 image/*,但工具会校验 MIME 类型,拒绝列表之外的文件,包括 SVG 和 HEIC。
一张图片里有多个二维码时,返回哪一个?
返回检测器报告的第一个。工具没有选择器让你换另一个,也不会列出图中找到的全部二维码。
由 HandyTools Hub 团队审校 · 最后更新