把二维码 / 条形码对准取景框
点「开始扫描」,把码对准摄像头。
还没有记录。
| 类型 | 说明 | 原生引擎 | jsQR 降级 |
|---|---|---|---|
| QR Code | 二维码,最常见 | ✅ | ✅ |
| EAN-13 / EAN-8 | 商品条码(国内多为 69 开头) | ✅ | ❌ |
| UPC-A / UPC-E | 北美商品条码 | ✅ | ❌ |
| CODE 128 / 39 / 93 | 物流、仓储、工业标签 | ✅ | ❌ |
| ITF / Codabar | 部分行业专用条码 | ✅ | ❌ |
| Data Matrix / Aztec / PDF417 | 二维条码(票证、证件) | ✅ 部分 | ❌ |
说明:二维码两种引擎都能识别;一维条形码只有原生 BarcodeDetector 支持,Safari / Firefox 上会提示不支持。
⚠️ 说明:摄像头画面全程只在你的浏览器本地处理,不截图、不上传、不保存。
识别能力取决于浏览器:优先用原生 BarcodeDetector(Chrome / Edge 支持最好),不支持时降级到 jsQR(仅支持二维码)。
请在光线充足、码面平整清晰的环境下扫描;不要用它扫描来源不明的二维码,打开链接前请先确认域名是否可信。
功能依赖 HTTPS 环境与摄像头权限。
电脑上收到一张二维码图片、网页上有个码想扫一下、快递单上的条码想看看到底是什么——掏手机扫再传回电脑太麻烦,而手机浏览器又不能直接扫相册里的图。
这个工具让网页直接调用摄像头扫:对准就出结果,还能连续扫、复制内容、直接打开链接。
怎么用:
① 点「📷 开始扫描」,允许摄像头权限;
② 手机用户建议切到后置摄像头(分辨率更高、对焦更好);
③ 把码对准取景框,识别到会立刻显示并记入历史;
④ 结果是一串网址的话,可以直接点「🔗 打开链接」。
关于兼容性,这里要说清楚:
· 二维码:几乎所有现代浏览器都能扫(原生引擎不行就降级到 jsQR);
· 一维条形码(商品上的那种):只有 Chrome / Edge 的原生 BarcodeDetector 支持,Safari 和 Firefox 目前不行,页面会明确提示你。
两个使用提醒:
· 光线要够、码面要平,反光和畸变都会导致识别失败;
· 别乱扫来源不明的码。识别出来是网址的话,先看清楚域名再决定要不要打开——技术能识别,判断还得你自己来。
怎么实现:
① 能力检测:`'BarcodeDetector' in window` 为真则用原生引擎,否则加载已就位的 jsQR 做降级;
② 取流:`getUserMedia({ video: { facingMode:'environment' } })`,并 `enumerateDevices()` 列出摄像头供切换;
③ 识别循环:`requestAnimationFrame` 里把 video 画面画到隐藏 canvas,取 `getImageData`;原生引擎直接 `detector.detect(videoEl)`,降级则 `jsQR(data, w, h)`;
④ 节流:连续模式下每 ~150ms 才真正解码一次,避免每帧跑解码把 CPU 打满;
⑤ 去重:相同内容在 1.5 秒内不重复入历史;识别成功时用 `OscillatorNode` 发一声短提示音;
⑥ 释放:停止时 `track.stop()` 关闭摄像头。
它不做:不识别相册图片(请用本站的 qrcode-decode)、不生成二维码、不保存任何画面。
qrcode-decode),它支持上传图片解析。审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!