本帖最后由 tobaba 于 2025-12-28 16:39 编辑
更新记录:
[b]2025-12-28更新优化V1.4版本下载地址:https://wwawo.lanzoub.com/iqAOc3epkg9i
修复TTS语音播放。
2025-09-14更新优化V1.3版本下载地址:https://wwkc.lanzoub.com/iUTD7366ezkf
2025-09-14更新如下:
本次更新主要针对用户体验优化和功能增强,包括截图功能改进、系统托盘支持、播放体验优化以及文本右键菜单功能。
🔧 主要更新内容
1. 截图功能优化
问题描述
多次按截图快捷键会触发多次截图操作
无法取消正在进行的截图操作
功能特点
✅ 防止重复触发截图操作
✅ 支持ESC键取消截图
✅ 完善的状态管理机制
2. 系统托盘功能
问题描述
程序关闭后进程仍在运行
任务栏没有托盘图标
缺少最小化到托盘的功能
#### 功能特点
✅ 程序启动时显示托盘图标
✅ 点击关闭按钮最小化到托盘
✅ 双击托盘图标恢复窗体
✅ 右键菜单支持显示/退出
✅ 气泡提示功能
3. 播放按钮用户体验优化
问题描述
播放按钮点击后由于网络或MP3生成等原因可能很慢
缺少加载状态和进度提示
UI在生成过程中无响应
功能特点
✅ 播放时显示加载状态和进度
✅ 非阻塞UI,保持界面响应
✅ 实时进度显示(0%-90%)
✅ 完善的错误处理机制
✅ 可随时停止播放
4. 文本右键菜单功能
问题描述
识别后的文本缺少快速搜索和翻译功能
需要手动复制文本到浏览器进行搜索或翻译
功能特点
✅ 右键菜单支持复制、百度AI搜索、Bing翻译
✅ 智能文本选择(优先选中文本,否则使用全部文本)
✅ 自动URL编码处理
✅ 完善的错误处理
🎯 使用说明
截图功能
1. 按 **Alt+Z** 开始截图
2. 在截图选择区域时,按 **ESC** 键取消
3. 如果截图正在进行,再次按Alt+Z会被忽略
系统托盘
1. 程序启动时会在系统托盘显示图标
2. 点击关闭按钮会最小化到托盘
3. 双击托盘图标或右键选择"显示"恢复窗体
4. 右键选择"退出"完全关闭程序
播放功能
1. 点击播放按钮显示生成进度
2. 可以随时点击停止按钮中断
3. 播放完成后自动恢复UI状态
文本右键菜单
1. 在识别文本中右键
2. 选择"复制"复制选中或全部文本
3. 选择"百度AI搜索"在浏览器中搜索
4. 选择"Bing翻译"在浏览器中翻译
*更新时间: 2025年09月14日*
*版本: UcfarOCR-52PoJie V1.3*
2025-09-07更新如下:
// 根据图像大小和复杂度自动调整超时时间
var intelligentTimeout = CalculateIntelligentTimeout(bitmap, timeout);
大图像自动增加超时时间
复杂图像增加处理时间
设置最小/最大超时限制
超时后自动重试
每次重试增加1.5倍超时时间
智能延迟重试间隔
超大图像自动缩放到2048像素以内
保持宽高比不变
提高OCR处理速度
// 快速模式 - 适合高性能机器
OcrService.ConfigureForPerformance(PerformanceLevel.Fast);
// 平衡模式 - 默认设置
OcrService.ConfigureForPerformance(PerformanceLevel.Balanced);
// 彻底模式 - 适合慢速机器
OcrService.ConfigureForPerformance(PerformanceLevel.Thorough);
✅ 大图像超时:自动缩放大图像
✅ 慢速机器超时:可配置更长超时时间
✅ 临时失败:自动重试机制
✅ 复杂图像:智能超时计算
✅ 系统差异:可配置性能级别
✅ 极简实现,100%兼容极简二维码和多二维码场景
✅ 增强编码优先级和乱码检测
✅ 多二维码识别:依次用编码优先级尝试 DecodeMultiple,合并所有唯一结果,保证不重复。
一、简介
一款 Windows (.NET 8 WinForms) 免费无限制的桌面 OCR 工具,集成区域截图识别、图片/剪贴板识别、二维码识别、Microsoft Edge 翻译、TTS 语音朗读与常用文本清理。


- 全局热键: Alt+Z 区域截图 → 自动 OCR
- OCR 引擎: 本地 DLL(依赖
data/ 模型)
- 翻译: Edge Translate(自动管理)
- TTS: EdgeTTS 播放与语音选择,另有
System.Speech 朗读
- 二维码: ZXing 解码 PNG
二、功能
-
区域截图识别、图片文件/剪贴板导入识别
-
文本处理: 一键去换行、一键去空格、复制文本
-
二维码识别: 从当前图片解码
-
翻译: 可选目标语言,结果显示在下方文本框
-
TTS: 选择声音,播放/停止,支持 MP3 缓存
-
图片: 缩放、拖拽、复制、保存
-
截图识别: 按 Alt+Z → 十字准星框选 → 自动识别填充主文本框。
-
导入图片: “打开文件”/“粘贴剪贴板”/拖拽图片到左侧 → 自动识别。
-
图片操作: 滚轮缩放、左键拖拽、复制图片、保存图片。
-
文本操作: 复制文本、去换行、去空格。
-
二维码识别: 点击“二维码”从当前图像解码 → 显示在下方文本框。
-
翻译: 选择目标语言 → “翻译” → 结果显示在下方文本框。
-
TTS: 选择 Voice → “播放/停止”朗读主文本框内容。
三、目录结构
Services/:OcrService、QrService、TranslationService、TokenManager
Util/:GlobalHotKey、HttpUtil
ScreenGrabber.cs:全屏覆盖层框选截图
bin/.../win-x64/data/:OCR 模型
Mp3/:TTS 缓存目录
四、二次开发 API 速览
Task<string> OcrService.RecognizeAsync(Bitmap bitmap, TimeSpan timeout, CancellationToken cancellationToken = default)
string? QrService.Decode(System.Drawing.Bitmap bitmap)
Task<string> TranslationService.TranslateAsync(string text, string fromLang = "", string toLang = "en", CancellationToken cancellationToken = default)
void ScreenGrabber.Capture(Action<Bitmap> onCaptured, Action? onCancel = null, bool showAuxiliaryLines = false)
GlobalHotKey.GlobalHotKey(IntPtr handle, Keys key, GlobalHotKey.KeyModifiers modifiers)
- HTTP 工具:
HttpUtil.GetAsync/PostAsync/PostWithEdgeHeadersAsync/GetWithEdgeHeadersAsync(...)
初衷
-
轻量高效:一键截图即识别,极简工作流。
-
本地化/隐私:OCR 在本地 DLL 推理,避免将截图上传云端。
-
集成常用动作:二维码、翻译、TTS 一站式完成。
-
工程可复用:将 OCR、截图、热键、HTTP、Token 等做成独立可复用模块。
-
回调式 OCR → TaskCompletionSource 异步封装 + 可取消/超时。
-
全局热键注册与消息处理,避免阻塞 UI。
-
多屏坐标统一、DPI 适配与图像缩放/拖拽。
-
翻译 Token 生命周期管理,失败自动刷新。
-
OCR 默认 5 秒超时,避免 UI 卡顿。
-
图片缩放/拖拽优化,滚轮变焦 + 文本清理快捷键。
-
TTS 缓存 MP3,减少重复合成。
-
Edge 请求统一封装复用连接池。
|