识
识别二维码 QR Reader
右键图片或内联 SVG 即可识别二维码;多通道预处理(原生彩色、中值去噪、Sauvola 局部阈值);分位数对比度拉伸对抗压缩发灰;支持剪贴板截图识别与多尺度自适应扫描。
#二维码
#图像识别
#剪贴板
資料統計
總安裝量
7
近 24 小時
+7
使用者評分
-
廣告
描述
版本
評分0
權限說明
从网页图片、SVG 和剪贴板截图中识别二维码并复制结果
載入中…
QR Reader - Decode QR Codes on Page
在网页上直接解码二维码,无需保存图片或切换到手机。
在网页上直接解码二维码,无需保存图片或切换到手机。支持两类目标:
<img> 元素渲染的二维码图片<svg> 渲染的矢量二维码(例如部分登录页、配色平台生成的码)识别结果通过弹窗展示,一键复制。
脚本内置三级解码通道,按顺序尝试,任一通道成功即返回:
| 通道 | 名称 | 处理方式 | 适用场景 |
|---|---|---|---|
| 1 | 灰度直出 | BT.601 灰度转换 + 分位数对比度拉伸(裁掉直方图两端各 0.5% 像素) | JPEG 压缩导致的整体发灰 |
| 2 | 中值去噪 | 3×3 中值滤波后重试(>200 万像素或缩放系数 ≤0.25 时自动跳过) | 码点边缘毛刺、噪声干扰 |
| 3 | Sauvola 局部阈值 | 基于积分图的局部自适应二值化,窗口尺寸自适应(15px ~ min(w,h)/40) | 暗色主题、低对比度、渐变背景 |
解码前按 1 → 0.5 → 0.25 → 2 四档缩放依次扫描,覆盖两类场景:
Win + Shift + SCmd + Shift + 4此方式适用于跨域拦截、CSS 精灵图、动态生成的 canvas 二维码等右键方式覆盖不到的场景。
| 操作 | 说明 |
|---|---|
Esc |
关闭弹窗 |
| 点击「复制」 | 写入剪贴板;若自动复制失败,全文已自动选中,可手动 Ctrl + C |
| 权限 | 用途 |
|---|---|
@connect * |
图片跨域被浏览器拦截时,通过 GM_xmlhttpRequest 拉取图片字节再解码 |
GM_setClipboard |
结果弹窗的「复制」按钮 |
GM_registerMenuCommand |
注册「从剪贴板识别」等菜单项 |
@require jsQR 1.4.0 |
解码引擎(unpkg CDN 加载) |
跨域图片拉取流程:
GM_xmlhttpRequest(anonymous: true,不携带 Cookie)crossOrigin="anonymous" 的常规加载两种方式都只读取图片本身,不向目标站发送任何凭据。
| 现象 | 原因 | 处理 |
|---|---|---|
| 提示「图片被跨域拦截」 | 目标站拒绝了匿名跨域请求 | 截图后用「从剪贴板识别」 |
| 提示「剪贴板中没有图片」 | 剪贴板内容不是图片 | 重新截图,确保截图区域是图片像素而非网页文字 |
| Firefox / Safari 下剪贴板失败 | 浏览器未提供 navigator.clipboard.read |
改用右键识别方式 |
| 提示「未检测到二维码」 | 码点过小(<60px)、强模糊、旋转角度大、艺术码(点阵码 / 微信 rcode) | 放大原图重试,或提高截图分辨率 |
| SVG 识别失败 | SVG 引用了外部资源,序列化后渲染空白 | 单独打开该 SVG,或截图识别 |
| jsQR 加载失败 | unpkg CDN 不可达 | 检查网络后刷新页面 |
GM_registerMenuCommand 与 GM_xmlhttpRequest)@noframes)WeakRef、数字分隔符等 ES2021 特性)