Text Grab Windows OCR 工具技术分析

一、概述

1. 项目背景

A. 项目定位

Text Grab 是一款专为 Windows 10/11 设计的轻量级光学字符识别(OCR)工具,旨在解决图像、视频或应用程序中无法选择文本的问题。

B. 核心价值

  • 将屏幕上任何可见的文本转化为可复制的内容
  • 无需后台常驻进程,按需启动
  • 完全本地化 OCR 处理,保护隐私
  • 多种工作模式适应不同使用场景

C. 影响力

  • GitHub Stars:4.5k
  • Forks:284
  • 最新版本:v4.11.2(2024 年 12 月发布)
  • 作者是 Microsoft PowerToys Text Extractor 的开发者

2. 技术背景

A. 问题定义

在日常工作中,用户经常遇到以下场景:

  • 图片中的文字无法复制
  • 视频暂停时的字幕无法选择
  • 某些应用程序界面中的文本被锁定
  • 需要快速提取并处理大量文本

B. 解决方案

利用 Windows 10/11 内置的 OCR API(Windows.Media.Ocr),通过截图识别的方式将文本提取到剪贴板,再进行后续处理。

二、系统架构

1. 技术栈

graph TB
    A[Text Grab 应用层] --> B[.NET 6.0+]
    B --> C[WPF UI]
    B --> D[Windows OCR API]
    B --> E[第三方库]

    E --> E1[ZXing.Net<br/>QR码识别]
    E --> E2[WPF-UI<br/>Fluent UI]
    E --> E3[CliWrap<br/>CLI处理]
    E --> E4[Community Toolkit]

    C --> F[MSIX 打包]
    F --> G[Microsoft Store]
    F --> H[GitHub Releases]
    F --> I[Scoop/Chocolatey]

Text Grab 技术栈架构

2. 核心组件

A. OCR 引擎

使用 Windows.Media.Ocr API,特点:

  • 完全本地运行,无需网络连接
  • 支持多种语言识别
  • 自动识别文本边界框
  • 提供字符级和单词级定位信息

B. UI 框架

  • WPF(Windows Presentation Foundation)
  • WPF-UI 提供 Fluent Design 风格
  • 支持浅色/深色主题

C. 进程模型

  • 前台模式:按需启动,用完即退
  • 后台模式(可选):常驻进程,支持全局热键
  • 命令行模式:支持自动化脚本

3. 工作原理

sequenceDiagram
    participant U as 用户
    participant T as Text Grab
    participant O as OCR API
    participant C as 剪贴板

    U->>T: 触发捕获(快捷键/选择区域)
    T->>T: 截取屏幕区域
    T->>O: 发送图像进行 OCR
    O->>T: 返回识别结果+位置信息
    T->>T: 文本处理/编辑
    T->>C: 复制到剪贴板
    C->>U: 粘贴使用

Text Grab 工作流程

三、功能模式分析

1. 全屏模式(Full-Screen Grab)

A. 功能描述

这是 Text Grab 的核心功能,也是 Microsoft PowerToys Text Extractor 的基础实现。

B. 使用方式

  • 按快捷键启动(可自定义)
  • 鼠标拖拽选择屏幕区域
  • 自动识别选中区域内的文本
  • 单击即可复制单个单词

C. 技术特点

  • 利用 OCR API 返回的单词边界框
  • 精确定位每个单词的位置
  • 支持即时取消(ESC 键或右键)

2. 抓取框架模式(Grab Frame)

A. 功能描述

一个半透明的浮动框架,可放置在任何文本上方进行 OCR。

B. 使用场景

  • 需要多次从同一位置提取文本
  • 视频字幕提取
  • 固定区域的文本监控

C. 技术优势

  • 窗口大小和位置可调
  • 调整窗口可改善 OCR 准确率
  • 内置搜索功能快速定位文本

3. 文本编辑窗口(Edit Text Window)

A. 功能描述

类似记事本的纯文本编辑环境,专门用于处理 OCR 提取的文本。

B. 核心功能

mindmap
  root((文本编辑窗口))
    文本获取
      全屏捕获
      抓取框架
      批量图像OCR
      剪贴板监听
    文本处理
      大小写转换
      空格/空行修剪
      单行化
      重复行删除
    高级工具
      正则表达式提取
      查找替换
      表格格式转换
      保留字符替换
    批量操作
      目录列表
      文件夹图像批量OCR
      URL启动

文本编辑窗口功能

C. 典型工作流

  1. 使用全屏模式或抓取框架提取文本
  2. 在编辑窗口中清理和格式化
  3. 使用工具函数处理(如去重、转换表格)
  4. 复制最终结果到目标应用

4. 快速查询(Quick Simple Lookup)

A. 功能描述

一个个人文本字典/剪贴板管理器,用于存储和快速检索常用文本。

B. 使用流程

  1. 按 Win + Shift + Q(默认快捷键)
  2. 输入关键词过滤
  3. 按 Enter 复制第一条结果
  4. 粘贴到目标应用

C. 适用场景

  • 频繁使用的 URL
  • 常用邮箱地址
  • 零件编号/产品代码
  • 代码片段

5. 命令行接口

A. 支持的参数

参数功能
Fullscreen启动全屏捕获模式
GrabFrame启动新的抓取框架
EditText启动新的编辑窗口
Settings打开设置界面
"文件路径"OCR 图像文件或打开文本文件
"文件夹路径"批量 OCR 文件夹中所有图像

B. 自动化集成示例

graph LR
    A[脚本/自动化工具] -->|调用| B[Text Grab CLI]
    B --> C[Fullscreen]
    B --> D[批量OCR]
    B --> E[EditText]

    D --> F[文件夹路径]
    F --> G[生成文本报告]

    E --> H[文本处理]
    H --> I[输出到文件]

命令行接口工作流

四、技术实现细节

1. OCR 引擎集成

A. Windows.Media.Ocr API

// 初始化 OCR 引擎
var engine = OcrEngine.TryCreateFromUserProfileLanguages();

// 识别图像
var ocrResult = await engine.RecognizeAsync(softwareBitmap);

// 获取文本
string text = oprResult.GetText();

B. 性能优化

  • 按需初始化 OCR 引擎
  • 缓存用户语言设置
  • 异步处理避免阻塞 UI

2. 文本边界处理

A. 单词级别识别

OCR API 返回每个单词的边界框,Text Grab 利用此特性实现:

  • 单击单词即复制
  • 精确的区域选择
  • 视觉反馈(单词高亮)

B. 多语言支持

自动检测用户系统语言,支持:

  • 英语
  • 中文简体/繁体
  • 日语
  • 韩语
  • 以及 Windows 支持的其他语言

3. 二维码识别

A. 技术实现

集成 ZXing.Net 库,支持:

  • QR 码识别
  • 条形码识别
  • 多码批量识别

B. 应用场景

  • 快速添加联系方式
  • 网址跳转
  • 产品信息提取

五、安装与分发

1. 官方渠道

A. Microsoft Store

  • 自动更新
  • 简单安装
  • 一键卸载

B. GitHub Releases

  • MSIX 包
  • 便携版(解压即用)
  • 完整安装包

2. 社区包管理器

A. Scoop

scoop install text-grab

B. Chocolatey

choco install text-grab

3. 开发构建

A. 环境要求

  • .NET 6.0 SDK
  • Visual Studio 2019/2022 或 VS Code
  • Windows 10 SDK(10.0.19041.0)

B. 构建命令

# 使用 .NET CLI
dotnet publish -c Release

# 或使用提供的脚本
./build-unpackaged.ps1

六、设计原则与用户体验

1. 核心设计理念

A. 极简主义

  • 无不必要的 UI 元素
  • 快速启动,快速退出
  • 减少点击次数

B. 按需运行

  • 默认无需后台进程
  • 降低系统资源占用
  • 保护用户隐私

C. 模块化

  • 四种模式各司其职
  • 可独立使用
  • 支持组合工作流

2. 交互设计

A. 快捷键优先

  • 所有功能都有快捷键
  • 可自定义快捷键
  • 全局热键支持(后台模式)

B. 视觉反馈

  • 选中区域实时预览
  • OCR 结果即时显示
  • 错误状态明确提示

C. 容错设计

  • 无文本时保持窗口打开
  • ESC 键快速取消
  • 右键菜单备选方案

七、技术优势与局限

1. 技术优势

A. 本地化处理

  • 无需网络连接
  • 数据不离设备
  • 响应速度快

B. 深度集成

  • 利用 Windows 原生 API
  • 与系统集成度高
  • 兼容性好

C. 功能丰富

  • 不只是 OCR,还包含文本处理
  • 支持批量操作
  • 命令行接口扩展性强

2. 技术局限

A. OCR 准确率

  • 依赖 Windows OCR 引擎质量
  • 特殊字体识别可能失败
  • 手写字体支持有限

B. 平台限制

  • 仅支持 Windows 10/11
  • 不支持 Linux/macOS
  • 旧版 Windows 不兼容

C. 语言支持

  • 需要系统安装对应语言包
  • 某些语言识别效果较差

八、竞品对比

1. 与 PowerToys Text Extractor

特性Text GrabText Extractor
开发者Joe Finney基于 Text Grab
功能模式4 种模式仅全屏模式
文本编辑内置编辑器
后台进程可选必须运行
批量 OCR支持不支持

2. 与云 OCR 方案

特性Text Grab云 OCR 方案
隐私本地处理需上传图片
网络依赖无需网络必须联网
准确率中等通常更高
成本免费可能有费用

九、应用场景

1. 日常工作

A. 开发者

  • 从截图提取错误代码
  • 复制日志中的关键信息
  • 快速提取配置参数

B. 设计师

  • 从设计稿提取文本内容
  • 复制样式文件中的 CSS
  • 导出图标中的文字

C. 数据录入

  • 从纸质文档数字化
  • 发票/收据信息提取
  • 表格数据转换

2. 教育领域

A. 在线学习

  • 视频字幕提取
  • 课件文本复制
  • 笔记整理

B. 语言学习

  • 外语文本快速复制
  • 词典辅助翻译
  • 语法例句收集

3. 内容创作

A. 写作

  • 引用资料提取
  • 图片转文字
  • 摘要整理

B. 社交媒体

  • 图片文案提取
  • 热点内容收集
  • 多平台发布准备

十、未来发展方向

1. 功能增强

A. AI 集成

  • 本地 LLM 文本润色
  • 智能摘要生成
  • 自动翻译

B. 表格识别

  • 更智能的表格 OCR
  • 自动识别表头
  • 导出为 Excel/CSV

C. 手写识别

  • 集成手写 OCR 引擎
  • 笔记数字化
  • 手写公式识别

2. 平台扩展

A. 跨平台支持

  • macOS 版本(已有类似产品 Text Sniper)
  • Linux 版本
  • Web 版本(使用 WebAssembly)

B. 移动端

  • iOS/Android 应用
  • 手机拍照 OCR
  • 云端同步

3. 生态建设

A. 插件系统

  • 第三方扩展支持
  • 自定义文本处理器
  • API 开放

B. 云服务(可选)

  • 多设备同步
  • 快速查询云端备份
  • 团队共享字典

十一、总结

Text Grab 是一款设计精良的 Windows OCR 工具,通过充分利用 Windows 原生 OCR API,实现了轻量、快速、功能丰富的文本提取体验。它的四种工作模式覆盖了从简单复制到复杂文本处理的多种场景,适合不同用户需求。

项目的核心价值在于:

  • 极简的设计理念
  • 本地化处理保护隐私
  • 丰富的文本处理工具
  • 灵活的命令行接口

对于经常需要从图片或视频中提取文本的用户来说,Text Grab 是一款值得尝试的效率工具。


参考资料

  1. Text Grab GitHub 仓库
  2. Text Grab Microsoft Store
  3. Windows OCR API 文档
  4. PowerToys Text Extractor
最后修改:2026 年 01 月 24 日
如果觉得我的文章对你有用,请随意赞赏