返回作品列表
桌面應用 · 本機 AI · Fluent WPF

Cornea

螢幕框選 OCR / 翻譯 / 結構化 / 解釋

框選螢幕任一塊區域,完全在你的電腦本機看懂它——擷取文字、翻譯、抽成表格、白話解釋。全程離線,不上傳任何東西,不留任何痕跡。

類型
Windows 桌面工具
平台
Windows 10 / 11 x64
介面
C# · .NET 10 · WPF Fluent
AI 引擎
Windows OCR · Ollama(qwen3 / qwen2.5-vl)
隱私
100% 本機・零上傳
▶ 翻譯結果 · qwen3:8b
原文:The kernel panics when the driver returns EFAULT.
譯文:當驅動程式回傳 EFAULT 時,核心會發生嚴重錯誤(panic)。
文字擷取 翻譯 結構化資料 截圖解釋
為什麼做這個

看得到,用不了——只是因為它在螢幕上

螢幕上「看得到但用不了」的內容無所不在:圖片裡的文字、外文介面、截圖裡的表格、看不懂的錯誤訊息。現有的解法幾乎都要把你的螢幕內容上傳到雲端——要登入、要訂閱,你框的每一張截圖(可能含私人訊息、工作機密、個資)都經過別人的伺服器,甚至可能被拿去訓練模型。

Cornea 的回答是:這些事本來就可以完全在你自己的電腦上做完。

OCR 用 Windows 內建引擎,語言模型跑在本機(Ollama),從框選到輸出,沒有任何一個位元組離開你的機器。沒有帳號、沒有 API 金鑰、沒有雲端——所以也沒有東西可以外洩。

Cornea(角膜)是眼睛最前面、把看到的東西聚焦成像的那一層。這個工具做的事一樣:把螢幕上散亂或看不懂的內容,聚焦成有用的輸出。

核心體驗

學一次,四種用途

按下全域快捷鍵 → 螢幕蓋上半透明遮罩 → 拖曳框選 → 結果視窗出現在框選位置旁。一個動作,四種輸出。每個模式都可設專屬全域快捷鍵,按下、框選、答案就在旁邊。

Mode 01 · OCR

文字擷取

Windows 內建 OCR

抓出圖裡的字,保留換行與版面。CJK 感知的重建演算法讓中文不塞怪空格,中英混排一樣乾淨可用。

Mode 02 · Translate

翻譯

本機文字模型 · qwen3:8b

框外文,原文/譯文並排對照;可改目標語言即時重譯。所有內容在本機 Ollama 完成,不觸網。

Mode 03 · Structure

結構化資料

本機視覺模型 · qwen2.5-vl:7b

表格、名單、收據 → CSV / JSON。原圖與抽出的資料左右並排,把「請對照原圖核對」直接寫進介面。

Mode 04 · Explain

截圖解釋

本機視覺模型 · qwen2.5-vl:7b

圖表、錯誤訊息、流程圖 → 白話講重點。可下一句指示補充脈絡;答完即結束,不做開放式聊天。

隱私架構

隱私不是功能,是架構決定

截圖不落地

框選的圖只存在記憶體,處理完就丟;連「最近擷取」暫存都只在記憶體。刻意不做持久歷史——那會把你框過的每張截圖留在硬碟上。

模型呼叫全在 localhost

圖片以 base64 直接進本機 API,不寫暫存檔。沒有雲端服務可以呼叫,也就沒有金鑰需要保管。

不做開放式聊天

截圖解釋是「一次框選、一次指示、一段回答」,答完即結束。這是刻意的產品邊界——Cornea 是一把工具,不是換皮的 chatbot。

設定檔裡沒有祕密

一個 JSON,存的是快捷鍵和模型名稱。沒有金鑰、沒有 token、沒有 session——因為架構上根本沒有雲端服務。

工程重點

幾個值得一提的技術決定

1

DPI 與多螢幕:實體像素當唯一真相

框選工具最容易歪的地方是座標:WPF 用 DIP、螢幕用實體像素、多螢幕各有不同縮放比例,混用必歪。Cornea 全鏈路用實體像素——遮罩視窗以 SetWindowPos 蓋滿虛擬螢幕、滑鼠用 GetCursorPos、擷取用 CopyFromScreen,三者天生同座標系,零換算誤差;只有「畫給人看」那一步才換算成 DIP。結果視窗定位以 MonitorFromRect + GetDpiForMonitor,125% / 150% 縮放與混合 DPI 多螢幕下都準。

2

CJK 感知的 OCR 文字重建

Windows OCR 對中文常是一字一個 word,直接用空格 join 會把中文塞滿空格。Cornea 依 Unicode 區段判斷相鄰字元:都是中日韓字元就不加空格、拉丁字之間才加,行與行保留換行——中英混排的擷取結果乾淨可用。

3

一張顯卡、兩個模型的切換體驗

6GB VRAM 一次只裝得下一個模型,翻譯(文字模型)與解釋/結構化(視覺模型)互換時 Ollama 要卸載重載,實測約 30 秒。Cornea 把它當 UX 處理而不是 bug:送請求前先打 /api/ps 判斷模型冷熱——要重載才說「正在載入,約 30 秒」,已熱就只說「處理中」,配上每秒跳動的等待計時,長等待不再是死畫面。

4

不盲信模型輸出的介面設計

視覺模型抽數字可能出錯或編造。結構化模式的結果視窗把原圖和抽出的資料左右並排,欄位標題直接寫「請對照原圖核對再使用」——把「驗證」做進介面,而不是讓使用者盲信輸出。

5

交付:從裝完到能用,不碰命令列

安裝檔是 Inno Setup + self-contained 發佈(48 MB),對方不用裝 .NET。本機模型的環境建置是這類工具對非技術使用者最大的門檻,Cornea 在第一次啟動時自動檢查:缺 Ollama 給一鍵安裝(開可見的 PowerShell 跑官方腳本,透明);缺模型給「下載」按鈕,App 內走 /api/pull 畫進度條、支援斷點續傳。環境齊全的人啟動完全無感。

環境需求

要跑起來,需要這些

作業系統Windows 10 / 11 x64,需中文/英文 OCR 語言功能(繁中 Windows 內建)
本機模型Ollama + qwen3:8b(文字)、qwen2.5vl:7b(視覺);第一次啟動會引導安裝
硬體建議 6 GB VRAM 以上 GPU(跑視覺模型);純文字擷取無任何額外需求
執行時安裝檔為 self-contained,內建 .NET 執行環境,無需另外安裝
技術棧總覽

一支 WPF App,兩條 API 客戶端

核心C# · .NET 10 · WPF(Fluent 主題跟隨系統深淺色)
OCRWindows.Media.Ocr(內建)· CJK 感知文字重建
語言模型Ollama REST API(/api/generate/api/pull/api/ps)· qwen3 / qwen2.5-vl
Windows 整合P/Invoke(SetWindowPos、GetCursorPos、GetDpiForMonitor)· 全域快捷鍵
發佈dotnet publish -r win-x64 --self-contained · Inno Setup 打包
下載 · Download
Cornea 安裝程式

Windows 安裝檔(Inno Setup),約 48 MB。裝完後首次啟動會引導安裝 Ollama 與所需模型;環境齊全的人可直接開始使用。

Cornea-Setup-1.0.0.exe · 約 48 MB · 即將提供
安裝檔未經數位簽章,Windows SmartScreen 可能顯示「未知發行者」,點「其他資訊 → 仍要執行」即可。本機模型(Ollama)需另外下載,Cornea 首次啟動會引導完成。