Skip to content

xiezhi101-gmail/STV-Workbench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STV-Workbench(SnapText Vision)

SnapText Vision Monogram

面向 Windows 的离线截图识别与标注工作台。

SnapText Vision 将原始截图转化为可识别、可编辑、可复制的视觉工作区。 它把离线 OCR、图像内直接交互、标注工具、取色、全局热键、托盘后台运行与历史记录整合为一个桌面体验。

关键词 / 热词

截图OCR,文字识别,屏幕识别,离线OCR,截图标注,取色器,画笔标注,Windows桌面工具,剪贴板,热键,绿色安装,截图文字识别,截图文字提取,截图工具,截图识别,Windows

产品定位

SnapText Vision 不只是截图工具,也不只是 OCR 工具;它是面向日常工作的桌面视觉处理层。

  • 支持全局快捷键截取屏幕任意区域
  • 使用开源 OCR 引擎本地识别文字
  • 保留原始截图的视觉上下文,而不是替换成纯文本结果页
  • 在同一工作区内完成点击、拖拽、复制、标注、绘制、取色与历史保存
  • 以独立 Windows 可执行文件形式交付完整体验

本仓库中的最终 Windows 交付物:

  • final-release/STV-Workbench.exe

STV-Workbench.exe 是最终发布使用的桌面程序名称。

为什么这个项目重要

现代知识工作常常被切分到太多工具里:截图软件、OCR 软件、剪贴板工具、图片编辑器、笔记应用和文件管理器。SnapText Vision 把这条分散链路压缩成一个高效闭环:

  1. 截取
  2. 识别
  3. 交互
  4. 保存
  5. 复用

它适合开发者、运维、分析师、产品、支持、文档编写者,以及任何需要在桌面内把屏幕信息快速转成结构化结果的用户。

核心能力

1. 即时区域截取

  • 全屏遮罩式截取流程
  • 选区外背景变暗,目标更清晰
  • 选区边框、控制点与交互提示明确
  • 支持全局热键直接截取,无需先打开主窗口

2. 离线 OCR 交互

  • 基于 RapidOCR + ONNX Runtime 的本地 OCR 流程
  • OCR 结果叠加在原始截图之上,而不是覆盖图片
  • 支持字符范围选择,并可直接从截图中复制
  • 主界面保留换行的文本输出,便于完整查看与复制

3. 截图编辑工作区

  • 画笔 工具支持颜色、线宽和不透明度控制
  • 画笔 工具支持颜色、线宽和不透明度控制
  • 擦除 流程集成在画笔工具组中
  • 图形 工具支持矩形、椭圆、空心/填充切换以及线宽和不透明度控制
  • 文字 工具用于在图片上直接插入文本
  • 取色 工具提供 HEXRGB 反馈
  • 支持撤销、重做、保存与剪贴板导出

4. 主窗口与快捷工具栏统一体验

  • 主界面与截取编辑器共用同一套工具语言
  • 白色、简洁、强调可读性的桌面 UI
  • 用背景强调保持选中态稳定,而不是频繁改按钮文案
  • OCR 操作统一命名为 文字识别

5. 持久化历史记录

  • 保存带标注与 OCR 结果的截图记录
  • 主窗口按日期分组展示历史摘要
  • 记录可直接选中并快速重新打开
  • 支持删除与可配置历史上限

6. 桌面友好的运行方式

  • 托盘集成
  • 后台流程连续运行
  • 热键行为可配置
  • 面向 Windows 部署的独立打包版本

体验设计原则

SnapText Vision 遵循以下几个明确的产品原则:

  • 保留视觉上下文:OCR 不应破坏原始截图的阅读体验
  • 减少工具切换:截取、识别、标注、复制尽量在同一处完成
  • 让交互足够直观:主编辑流程尽量保持左键即可完成
  • 保持界面干净:明亮工作区、强对比、低干扰
  • 以实用桌面产品交付:可执行文件、低配置成本、本地运行

技术栈

  • 桌面 UI:PySide6
  • OCR 引擎:rapidocr-onnxruntime
  • 运行时推理:onnxruntime
  • 图像与像素处理:Pillownumpy
  • 打包工具:PyInstaller

架构概览

app/
|- main.py                         # 应用入口
|- config.py                       # 常量与运行时配置
|- models.py                       # OCR、标注与历史记录模型
|- services/
|  |- capture_service.py           # 截图捕获与裁剪逻辑
|  |- history_service.py           # 历史记录持久化与清理
|  |- hotkey_service.py            # 全局热键注册
|  |- ocr_service.py               # OCR 编排与模型加载
|  |- resource_service.py          # 开发/打包模式下的路径解析
|  `- settings_service.py          # 设置加载与保存
`- ui/
   |- annotated_view.py            # 主图像画布、OCR 交互与标注
   |- capture_editor_overlay.py    # 悬浮截图编辑器
   |- main_window.py               # 主桌面窗口
   `- selection_overlay.py         # 截取选区遮罩

仓库结构

.
|- app/
|- assets/
|  `- branding/
|     `- stv-monogram.svg
|- final-release/
|  `- STV-Workbench.exe
|- scripts/
|  |- build.ps1
|  `- build_final.ps1
|- tools/
|  |- snaptext_vision.spec
|  `- stv_workbench.spec
|- requirements.txt
`- README.md

本地开发

1. 安装依赖

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

2. 运行应用

python -m app.main

3. 构建标准目录版本

powershell -ExecutionPolicy Bypass -File .\scripts\build.ps1

4. 构建最终单文件版本

powershell -ExecutionPolicy Bypass -File .\scripts\build_final.ps1

输出:

  • final-release/STV-Workbench.exe

最终发布策略

仓库会保持代码区整洁,同时保留可版本化的最终 Windows 单文件发布物。

  • 忽略临时构建产物
  • 忽略调试与中间打包目录
  • 忽略运行期历史与截图缓存目录
  • 忽略本地设置和临时追踪文件
  • 仅允许最终发布可执行文件通过忽略规则

这样既适合 Git 提交、评审与归档,也适合直接展示项目成果。

建议纳入版本控制的内容

建议保留在版本控制中:

  • app/
  • assets/branding/stv-monogram.svg
  • scripts/build.ps1
  • scripts/build_final.ps1
  • scripts/download_models.ps1
  • tools/snaptext_vision.spec
  • tools/stv_workbench.spec
  • requirements.txt
  • README.md
  • final-release/STV-Workbench.exe

建议忽略这些运行期或临时产物:

  • history/
  • settings.json
  • build/, build-final/, build-fresh-*
  • dist/, dist-fresh-*
  • 临时追踪文件、测试输出与缓存文件

开源依赖

结语

SnapText Vision 是一款更精炼的 Windows 桌面截图智能产品:启动快、默认本地运行、以交互为中心、尊重原始内容,并可直接作为独立可执行文件发布。

它既适合作为实用工具,也适合作为完成度较高的工程展示项目。

About

STV-Workbench(SnapText Vision)是一款面向 Windows 的离线截图识别与标注工作台,支持 OCR、截图编辑、取色、热键与历史管理。

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages