1357310795 / QrCodeScanner

通过截图或摄像头扫描二维码(支持ZXing、Zbar、OpenCV-WechatQrCode库) | Scan codes from screenshot and camera
390 stars 44 forks source link

几个改进建议. #19

Open YamatoRyou opened 1 year ago

YamatoRyou commented 1 year ago

版本: 1.41 操作系统: 64 位 Windows 11 (10.0.22621)

  1. 以截取屏幕方式获取二维码期间的鼠标指针从 "移动" 改为 "精确选择" (鼠标属性有鼠标指针样式的列表可供参考. 在其它软件有类似操作的场合, 鼠标指针会显示为一个 "+" 有助于精确定位);
  2. 允许从剪贴板中的图像识别二维码 (为了配合一些截图工具);
  3. 允许记忆窗口的大小与坐标;
  4. "Zbar 多码模式" 下有一定几率识别失败 (我测试下来发现通常于连续对同一个二维码图取后出现). 以下图为例, 连续对同一个示例二维码截取 10 次后的结果. 成功率反复横跳 (故障似乎是间歇性的, 不一定和下面一样成功率只有 20%, 有时成功率也能 100%). {765B12AA-DACC-2485-5967-4D5C1D7B3192}
  5. 对于多显示器, 截取屏幕方式的选区无法跨越 2 个桌面之间的缝隙处 (主要表现为鼠标按住并且指针已经进入下一个屏幕, 但选区的某个边缘仍然卡在上一个屏幕);
  6. 允许禁止多实例启动 (即只允许 1 个实例);
  7. 扫描结果的小窗口我认为不应与 Aero Snap 交互 (当移动这些窗口到桌面边缘会触发 Aero Snap);
  8. 启动参数支持: a) 软件自身虽然具有开机启动功能, 但启动后不能自动最小化. 可以加个 --tray--minimized; b) 如果在隐藏界面的情况下启动, 应该预定义至少一种获取模式. 我粗略设想了以下几个参考场合:
    • 假设启动参数为 --tray --from-clipboard, 效果: 启动后最小化到托盘, 并且监视剪贴板. 如果有图像进入剪贴板, 则以通知的形式提示用户是否开始识别 (适合与截图工具配合);
    • 假设启动参数为 --tray --from-shortcut-key, 效果: 启动后最小化到托盘, 按下软件设置的热键从屏幕中截取;
    • 假设启动参数为 --tray --from-all-desktop, 效果: 启动后最小化到托盘, 并且从整个桌面 (包括多显示器) 中识别所有二维码 (可能会影响性能, 可能取决于 "识别引擎". 适合需要 "一键识别" 的场合). 识别结束后退出程序.