Skip to content

截屏 离线OCR 搜索翻译 以图搜图 贴图 录屏 滚动截屏 Screenshot OCR search translate search for picture paste the picture on the screen screen recorder

License

Notifications You must be signed in to change notification settings

xushengfeng/eSearch

Repository files navigation

eSearch

(中文 | English)

LOGO

license release-date release aur aur1

简介

eSearch 是Information-portal的:electron:重写版(顺便加了亿些功能)

主要是想在 Linux 上(win 和 mac 上也能用)实现锤子大爆炸小米传送门这样的屏幕搜索功能,当然也是一款方便的截屏软件

经过数次版本迭代,eSearch 的功能愈加丰富

即拥有 截屏+OCR+搜索+翻译+贴图+以图搜图+录屏

截屏界面

字体是FiraCode,字体可在设置里设置

识别文字主页面

下载安装

到网站eSearch下载

或在右侧 releases 打开标签,选择符合你系统的包并下载安装

国内可以用GitHub Proxy加速下载

ArchLinux 可在 AUR 查找安装 e-searche-search-git

winget winget install esearch

OCR 服务

本地 OCR 由PaddleOCR的模型提供支持。

默认启用本地 OCR 服务,若想使用在线 OCR,目前提供了百度在线 OCR,需要依据教程获取API KEY 以及 Secret KEY,截止 2022 年 1 月,百度 OCR 还是可以免费领取服务。将获取到的API KEYSecret KEY 以及相应的你选择的文字识别服务URL 填入软件设置,去掉离线 OCR 的勾选即可使用在线 OCR。

源码运行&编译

git clone https://github.com/xushengfeng/eSearch.git
cd eSearch
npm install
# 编译
npm run dist
# 将在build目录产生安装包和解压的目录
# 运行
npm run start
# 调试
npm run dev

启动

在你的启动器打开 eSearch,他将出现在托盘。Gnome 用户需要安装appindicator插件来使用托盘。

默认快捷键为 Alt+C(你也可以在设置里设置快捷键)

cli

eSearch支持 cli,可以通过命令行进行简单的截屏。

esearch (若找不到,请尝试e-search)
	-a # 自动识别
	-c # 截屏搜索
	-s # 选中搜索
	-b # 剪贴板搜索
	-q # 快速截屏

不建议在终端进行自动或选中搜索,否则eSearch会执行Ctrl+C,从而导致终止终端程序

功能

已经勾选的功能是开发过程最新功能,但可能还没发布在最新版本

  • 截屏
    • 框选裁切
    • 框选大小位置可调整(支持方向键或 WASD)
    • 框选大小栏可输入四则运算式调整
    • 取色器
    • 放大镜
    • 画笔(自由画笔)
    • 几何形状(边框填充支持调节)
    • 高级画板设置(使用 Fabric.js 的 api)
    • 图像滤镜(支持局部马赛克模糊和色彩调节)
    • 自定义框选松开后的操作
    • 快速截取全屏到剪贴板或自定义的目录
    • 截屏历史记录
    • 窗口和控件选择(使用 OpenCV 边缘识别)
    • 长截屏(即滚动截屏)
    • 多屏幕(分开屏幕截屏,目前不支持合成一张图的跨屏截屏)
  • 录屏
    • 录制全屏
    • 自定义大小
    • 按键提示
    • 光标位置提示
    • 录制栏
    • 分段写入
    • 录音
    • 录制摄像头
    • 自定义比特率
  • 保存(可选保存为 SVG 可编辑文件)
  • 其他应用打开
  • 复制到剪贴板
  • 钉在屏幕上
    • 滚轮缩放
    • 恢复默认大小位置
    • 透明度
    • 鼠标穿透
  • 二维码识别
  • OCR 识别
    • 离线 OCR(eSearch-OCR
    • 自定义离线 OCR 模型和字典
    • 其他在线 OCR
    • 在线公式识别
    • 支持自己申请秘钥
    • 表格识别
  • 以图搜图
  • 托盘
  • 划词句来搜索
  • 识别展示
    • 自动搜索翻译
    • 搜索
    • 翻译
    • 自定义搜索翻译引擎
    • 软件自带浏览器打开
    • 跟随关闭、失焦关闭
    • 系统浏览器打开
    • 链接识别
    • 历史记录
    • 自动删除换行(用于自动排版)
    • 查找替换(支持正则匹配)
    • 其他编辑器编辑(支持自动重载)
    • 行号
    • 拼写检查
  • Wayland 桌面
1.mp4

截屏,自由调整框选大小(视频约 2.6MB)

3.mp4

取色器(视频约 1MB)

2.mp4

Ding 在屏幕上,透明度调节、归位以及鼠标操作(视频约 1.8MB)

3

绘图界面

4.mp4

主页面搜索和其他应用编辑(视频约 1.6MB)

3

主页面查找替换(支持正则)

国际化

大多数按钮使用图标,简少了不必要的翻译

添加新语言

  • 简体中文
  • 繁体中文
  • 世界语
  • 西班牙语
  • 阿拉伯语
  • 英语
  • 法语
  • 俄语

测试

在 ArchLinux,KDE plasma,Xorg 下测试通过

Windows10 和 Windows11 测试通过

macOS Catalina 测试通过

Q&A

为什么选择 electron

  • 跨平台需要,本来我是想在 Linux 上也能体验 Windows 下优秀的截屏工具,Linux 独占也不好,所以选择跨平台。
  • qt 依赖 c++,学习成本太高。flutter 桌面版还不太成熟。我更擅长 js 开发。
  • 截屏依赖本地系统,这是目前浏览器做不到的。
  • 最后只有 js 类跨平台方案,我选择了较为成熟,使用最多的 electron。

tauri 也支持跨平台,也使用 js 开发,会转为 tauri 开发吗

  • 有这个打算,还很心动。不过主进程 2000 行代码迁移到 rust 还是有些费劲的,所以现在不会很快迁移。

A JavaScript error occurred in the main process

这是主进程报错,可能由于各种原因导致,真正有用的错误信息是下面的具体错误,并且是代码错误。因此直接搜索“A JavaScript error occurred in the main process”很难解决问题。

一般来说,重装软件,恢复设置能解决 99%的问题。最好的办法是记录详细报错信息,提交一个issue进行反馈。

积累的错误及其讨论、解决方案:#123 #133

更新版本后出现了以前没有的错误

一般是因为不同版本的配置不兼容,可以尝试在 设置-高级-高级设置 里 恢复默认设置。

若未能解决问题,请提交 issue

贡献

请查看贡献指南

开发原因

我在用 Windows 时一直用这个好用的截屏软件:Snipaste - 截图 + 贴图,但我现在切换到 Linux,Snipaste 不支持,所以我选择了Flameshot,很可惜它没有直观的取色器。

促使我开发 eSearch 的另一个契机是我很享受在手机上使用锤子大爆炸小米传送门这样的即时信息搜索工具,但我没有找到电脑上类似的代替品。

所以我干脆自己开发一个“截屏+OCR+搜索+贴图”的软件。最开始用 python+pyqt 开发出Information-portal,但因为我不熟悉 pyqt,所以我转战:electron:,开发出本软件。😄

License

GPL-3.0 © xushengfeng