ℹ️ 点「开始扫描」后,浏览器会询问是否允许使用摄像头,请选择允许。手机用户可切换到后置摄像头,识别率更高。

📷 扫描控制

把二维码 / 条形码对准取景框

📷

点「开始扫描」,把码对准摄像头。

📊 支持的码类型

类型说明原生引擎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 目前不行,页面会明确提示你。
两个使用提醒:
· 光线要够、码面要平,反光和畸变都会导致识别失败;
· 别乱扫来源不明的码。识别出来是网址的话,先看清楚域名再决定要不要打开——技术能识别,判断还得你自己来。

类别实用工具
技术getUserMedia + BarcodeDetector / jsQR
权限摄像头(仅本地识别)
要求HTTPS + 受支持的浏览器

核心特性

摄像头实时扫描
二维码 + 一维码
连续扫描模式
扫描历史记录
结果一键复制
链接直接打开
前后摄像头切换
本地识别不上传

关于这个工具

怎么实现:
① 能力检测:`'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)、不生成二维码、不保存任何画面。

怎么用

  1. 第 1 步
    点「📷 开始扫描」,允许摄像头权限。
  2. 第 2 步
    手机用户在下拉框里切到后置摄像头。
  3. 第 3 步
    把码对准取景框,保持几厘米距离、别抖。
  4. 第 4 步
    识别到后看结果,可复制或直接打开链接。
  5. 第 5 步
    扫完点「⏹ 停止扫描」,摄像头会自动关闭。

更新记录

  • v1.0 2026-09-21 工具正式上线:基于 getUserMedia + BarcodeDetector 实现摄像头实时扫码,原生引擎不支持时自动降级到 jsQR(二维码);支持连续扫描、前后摄像头切换、扫描历史(最近 10 条)、结果复制、链接直接打开与识别提示音;解码做 150ms 节流与去重,停止时自动释放摄像头。画面全程本地处理不上传,首屏说明一维码的浏览器限制与安全提示,适配黑夜模式。

常见问题

提示「无法访问摄像头」怎么办?
按顺序排查:
① 必须 HTTPS:摄像头 API 只在安全上下文可用;
② 权限被拒:点地址栏左侧锁图标 → 网站设置 → 摄像头改为「允许」,再刷新;
③ 系统层面禁用:Windows 设置 → 隐私 → 摄像头;macOS → 隐私与安全性 → 摄像头;
④ 被占用:关掉正在用摄像头的会议软件;
⑤ 没有设备:确认设备有摄像头。
为什么扫不出商品条形码?
因为一维条形码依赖浏览器的原生 BarcodeDetector,而目前只有 Chrome / Edge 支持得比较完整,Safari 和 Firefox 基本不支持。
降级用的 jsQR 只能识别二维码,识别不了商品条码。
如果你需要扫 EAN / UPC / CODE128 这类一维码,请改用 Chrome 或 Edge 打开本页。
一直识别不出来,画面很清楚也不行?
常见原因与对策:
· 距离太近或太远:让码占满取景框的 60%~80% 最合适;
· 反光 / 摩尔纹:屏幕上的码容易有摩尔纹,稍微斜一点角度;
· 对焦没合上:手机切到后置摄像头,点一下画面触发对焦;
· 光线不足:补点光,但避免直射反光;
· 码太小或太密:一维码对分辨率要求高,手机后置比前置好得多;
· 画面畸变:广角镜头边缘的码容易变形,把码放到画面中间。
能扫相册里的二维码图片吗?
不能,本页面只做摄像头实时扫描。
要识别图片文件里的二维码,请用本站的 二维码解码 工具(qrcode-decode),它支持上传图片解析。
摄像头画面会被上传或保存吗?
不会。画面只在你的浏览器内存里逐帧解码,没有 `MediaRecorder`,不截图、不缓存、不上传,也没有任何网络请求。
停止扫描后摄像头立即释放,刷新页面即全部清空。
唯一需要注意的是:识别出来的网址请自行判断安全性,不要盲目打开来源不明的链接。

💬 留言板 0

全部留言需审核通过后展示
💬

还没有留言,来抢沙发吧!

✍️ 说点什么
0 / 500
图形验证码