Skip to content

feat(picviewer): add local QR code scanner#1

Open
hellow0rld-lyh wants to merge 3 commits into
masterfrom
feature/picviewer-qr-scan
Open

feat(picviewer): add local QR code scanner#1
hellow0rld-lyh wants to merge 3 commits into
masterfrom
feature/picviewer-qr-scan

Conversation

@hellow0rld-lyh

Copy link
Copy Markdown
Owner

功能

为 Picviewer CE+ 的浮动工具栏增加二维码识别按钮。

  • 复用 Picviewer 已有的原图解析与加载流程
  • 优先使用浏览器 BarcodeDetector,不支持时回退到固定版本的 jsQR
  • 识别过程完全在本地完成,不上传图片
  • 支持普通、反色和经过压缩的二维码
  • 对超大图片限制扫描尺寸,并在失败时进行阈值增强与分块扫描
  • 识别结果自动复制
  • 仅允许用户主动打开 HTTP/HTTPS 链接
  • 使用 Shadow DOM 结果弹窗,避免干扰网页样式
  • 对相同图片结果做短期缓存

安全

不会自动执行二维码里的 javascript:data:intent: 或其他自定义协议,也不会自动连接 Wi-Fi、拨号或发送邮件。

自动检查

GitHub Actions 已完成:

  • node --check JavaScript 语法检查
  • 二维码资源、按钮、处理分支和补丁标记检查
  • 防止重复插入
  • git diff --check

测试建议

合并前建议在 Firefox + Violentmonkey 中测试:

  1. 普通二维码图片
  2. 缩略图链接到原图的页面
  3. 跨域 CDN 图片
  4. 超大截图中的小二维码
  5. 普通文本二维码和 HTTP/HTTPS 链接二维码

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant