ePOE 的好几个工具读取的是屏幕上一小块固定区域,而不是剪贴板:灵魂之井已揭示阶级的读取、符文侦察、仪式掉落扫描器,以及仓库打开检测/格位悬停辅助功能。这种读取是通过 OCR —— 光学字符识别 —— 完成的,现在它在 Linux 上也能和 Windows 上一样工作。
两套引擎,自动选择
ePOE 在同一个服务背后带有两个 OCR 后端,并会自动在两者之间选择。你什么都不用设置。
- Windows OCR —— Windows 内置的识别功能(
Windows.Media.Ocr)。它速度快、无需下载,是 Windows 上的默认选项。 - 内置的跨平台引擎 —— Tesseract 加 OpenCV,以 WebAssembly 的形式在应用内部运行。它是 Linux 上唯一的引擎(Linux 上没有 Windows OCR),在 Windows 上则是系统内置引擎无法启动时的备用方案。
在 Windows 上你用的是系统内置引擎;在其他所有地方,以及系统内置引擎启动失败的 Windows 电脑上,则由内置的跨平台引擎负责。无论哪种情况,这些工具 —— 以及它们的快捷键和页面 —— 的表现都完全相同。
内置资源(约 6 MB)
跨平台引擎需要大约 6 MB 的模型和库文件。在正常安装的版本中,这些文件随应用一起提供,所以开箱即用。只有在没有拉取这些文件的纯开发环境中才会缺失;这时内置引擎会报告自己不可用,Windows 会悄悄改用系统内置的 OCR。在缺少这些资源的 Linux 上就没有可以退回的 OCR 了,扫描器会提示无法读取屏幕。
Linux 上的单词位置限制
Windows 内置引擎会返回每个识别出的单词及其在屏幕上的位置。内置的跨平台引擎返回的是每一行的文字,但没有每个单词的位置。对于读取奖励面板或物品名称这类场景 —— ePOE 要的是文字,而不是它们的像素位置 —— 这没有任何区别。唯一有影响的,是需要把东西精确画到某个单词上的功能,例如让仓库价格标记对准某个特定格子:在 Linux 上,由于只能依据整行来定位,位置会粗略一些。文字仍然能被正确读取;受影响的只是像素级的精确定位。
绝不读取游戏内存
无论运行的是哪个引擎,OCR 都只会查看 ePOE 在本地截取的屏幕上一块有限的区域,并在你自己的电脑上识别。它不会接触 Path of Exile 的内存,截取的像素也绝不会离开这台电脑。使用哪个引擎是每台电脑各自的事实,因此它属于云端同步永远不会带到你其他电脑上的设置之一。