JamTools

fandesfyf活跃维护

跨平台桌面小工具合集,把截屏录屏、文字识别、多语言翻译、多媒体格式转换、键鼠动作录制回放和局域网传文件都塞进一个软件里。

JamTools是一个跨平台的小工具集类软件,支持Windows7/8/10/11、Macos、ubuntu系统(其他系统可以直接从源码编译打包)。包含了(滚动/区域)截屏、录屏、文字识别、多种语言互译、多媒体格式转换、鼠标键盘动作录制播放、局域网文件传输、聊天机器人等功能,完全开源!

0.14.5发布于 2025-09-26 07:53 UTC736star113fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
pip3 install -r requirement.txt
硬件要求按 README 说明

README 未说明具体硬件要求,仅说明测试环境为 Windows 7/8/10/11、Ubuntu 20.04/18.04/16.04、macOS 10.13/10.15,未提及显存或 GPU 型号。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

跨平台小工具集,集成截屏录屏、离线OCR、翻译、格式转换、键鼠录制和局域网传输

跨平台桌面小工具合集,把截屏录屏、文字识别、多语言翻译、多媒体格式转换、键鼠动作录制回放和局域网传文件都塞进一个软件里。

核心能力

  • 支持选区、多边形和滚动截屏,并可固定截屏到屏幕
  • 基于 PaddleOCR 实现完全离线的文字识别与批量识别
  • 录制键鼠动作并支持倍速无限次重放,可设图像比对条件
  • 局域网传输支持客户端点对点与网页端共享,均支持断点续传
  • 多媒体转换支持裁剪拼接、压缩转码、提取音频和图片转视频

容易踩的坑

需自行下载 ffmpeg 和 gifsicle 可执行文件并放入 bin 目录对应系统文件夹,否则录屏和多媒体处理不可用;默认 clone 的项目不含作者编译的缩减版 opencv 库,需从 release 下载或安装 opencv-contrib-python==3.4.2.17;聊天机器人依赖思知人工智能平台,需填写自定义用户 ID 且服务器较慢。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本0.14.5
  1. 0.14.5Jamtools0.14.5 for ubuntu最新正式版2025-09-26 · 2025-09-26 07:53 UTC

    Jamtools0.14.5 for ubuntu

    发现好久没有在ubuntu上打包了,先打包一个

    更新内容:

    • 高版本的打包工具fbs开始收费了,如果使用高版本python可能会用不了fbs,所以完全移除了fbs包,使用cx_freeze打包(主打的就是一个白嫖至上)
    • 修复了多屏幕下录屏分辨率的问题
    • 修复双屏下小窗跑到屏幕外面的问题
    • 设置中允许设置快捷键
    • 滚动截屏添加了预览窗口
    • 更新使用文档
    • 适配高dpi缩放
  2. 0.14.1B0.14.1B for windows2023-06-19 · 2023-06-19 17:51 UTC
    查看更新说明

    Jamtools 0.14.1B for windows

    更新内容:

    • 高版本的打包工具fbs开始收费了,如果使用高版本python可能会用不了fbs,所以完全移除了fbs包,使用cx_freeze打包(主打的就是一个白嫖至上)
    • 修复了多屏幕下录屏分辨率的问题
    • 修复双屏下小窗跑到屏幕外面的问题
    • 设置中允许设置快捷键
    • 滚动截屏添加了预览窗口
    • 更新使用文档
    • 适配高dpi缩放
  3. 0.14.0B0.14.0B for windows2023-04-05 · 2023-04-05 17:18 UTC
    查看更新说明

    0.14.0B windows版本来喽!

    更新内容:

    • 界面美化终于来了,使用qt_material进行页面美化,增加了多个不同的主题!不同的颜色搭配随君选择。

    image

    这个页面应该是有美化了吧<超小声~>

    • 支持在线更新! 0.13.8B版本以上的可以进行在线更新, 在菜单-关于-检查更新中直接从github查找对应系统的最新版本并下载安装
    • 离线OCR:来自paddleocr的超轻量中英文识别模型, 已经集成到截屏、固定截屏到屏幕等页面上。识别后还能够方便地自由选词!
    • 修复小窗的移动不稳定的问题
    • 移除图像主体识别功能和调用百度的接口
    • 修复win7下无法运行
    • 修复不同物理分辨率显示器截屏的问题
    • 滚动截屏增加了预览窗口
    • 打包脚本优化
    • 重新整理了一部分代码
    • 总之陆陆续续改了很多,macos和ubuntu版本的后续会打包!
  4. 0.13.8B0.13.8B for windows2022-09-15 · 2022-09-15 15:31 UTC
    查看更新说明

    windows下的0.13.8B版本重新打包,修复了截图时剪切板复制的图片文件命名等问题; 修复了大量问题:

    • 修复翻译接口不可用的问题(不知道哪个老六一下子把我的百度api一百万字符的翻译都用欠费了....), 更改默认翻译接口为有道翻译;

    • 增加在线更新、离线语音合成等方便的功能

    • 修复win7下不能运行的问题

  5. 0.13.7B0.13.7B for windows&&ubuntu2022-07-21 · 2022-07-21 16:09 UTC
    查看更新说明

    一些bug修复以及区分ubuntu16和ubuntu20的打包

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    English | 中文文档

    JamTools介绍

    JamTools是一个跨平台的小工具集类软件,支持Windows7/8/10/11、Macos、ubuntu系统(其他系统可以直接从源码编译打包)。包含了(滚动/区域)截屏、录屏、(离线)文字识别、多种语言互译、多媒体格式转换、鼠标键盘动作录制播放、局域网文件传输、聊天机器人等功能,完全开源!

    部分单独的模块已整理为项目: 截屏功能 滚动截屏功能 视频播放器项目 网页端传输项目 客户端传输项目

    功能简介:

    • 酱截屏:                        

    截图功能.快捷键Alt+z;支持选区截图、多边形截图、滚动截屏等、支持复制截屏文件或图像数据到剪切板、支持截图中文字识别(翻译)、图像识别等,左侧工具栏提供画笔橡皮擦等简单绘图工具(QQ微信截屏有的都有,没有的也有hh);支持滚动截屏,滚动过程中支持自动和手动滚动,滚动截屏比FSCapture的拼接准确率更高,并且集成录屏功能,支持截屏时选区录屏。

    • 酱识字:

    完全离线的文字识别功能;截屏提取:截屏并提取文字(在截屏界面已经集成小窗的文字识别,更方便使用);批量识别:可上传一张或多张图片进行文字提取;此外可以使用右键划屏提字功能快速提取屏幕上任何地方的文字(用法见'其他功能')

    • 酱翻译:

    多语言翻译功能.无快捷键(极简模式下可通过浮窗使用);输入文字翻译,支持多种语言互译!已集成到截屏等界面下。

    • 酱录屏:

    录屏功能.快捷键Alt+c;屏幕录制功能,支持gif等多种格式录制;可以选定录制区,不选则为全屏录制;支持自定义编码速率、帧率、视频质量、声音源鼠标等;录屏结束后点击通知将直接播放!

    • 酱转换:

    各种音视频图片(多媒体文件)的裁剪拼接、压缩转码、提取混合等功能...这个的功能太多自行探索...(有点像格式工厂)

    • 酱控制:

    鼠标键盘所有动作的录制和(倍速无限次)重放,用于批量重复操作的自动运行,允许设置简单图像比对运行条件,支持将录制的动作作为教程发送给你的小伙伴萌,支持快捷键启动Alt+1录制,Alt+2播放/停止,F4强制停止。注意是不是九宫格的数字1!是字母区上面的数字!动作脚本文件(.jam)可以直接双击或拖入运行!(类似于按键精灵)

    • 酱传输:

    提供快速的局域网传输功能(有线或无线wifi链接),有客户端点对点连接传输和网页端共享两种方式。均支持数据双向传输。客户端传输需要通过连接码自动搜索并连接主机,建立连接之后即可互相发送文件或文件夹。网页端传输相当于共享文件夹,支持共享一个文件夹或文件夹下的某几个文件,通过选择对应网络适配器即可生成共享链接,连入该与适配器同一网络的其他设备即可通过链接或扫码访问共享文件,网页端勾选允许上传后支持文件上传,支持网页端传输密码设置,局域网传输比QQ微信传文件更高效快捷,实测通过连接同一热点的手机和电脑单向传输速率约为7MB/s(手机型号不同可能不一样),校园网内两台电脑的双向传输达到10M/s,看个人网络的配置。

    • 酱聊天:

    彩蛋功能。。傻d机器人在线陪聊!!来自思知人工智能平台的机器人(别问为什么不用图灵机器人,因为没q啊!自己搞一个模型也太占空间了。。),填写自定义用户ID后支持多轮对话,服务器有点慢。。。。毕竟思知也是免费提供的,还提供支持知识库训练,不能过多要求哈;默认保留50000字节的聊天记录。。

    • $其他功能:

      • 划屏提字:打开软件后可以在任何界面(图片也可),按下Alt键后用鼠标右键框选一块区域,即可提取出鼠标滑过的轨迹框选区域附近上下设定像素内的文字(并翻译),可以在设置中心设置详细内容!

      • 剪贴板翻译:监控剪贴板内容,剪切板内容变化7s内按下shift+ctrl+z键触发,支持自动中英文翻译,网页自动打开,百度云链接提取码自动复制等!可在设置中心设置详细内容!翻译小窗现在可以通过快捷键alt+x弹出了.

    • 小窗模式:(其实就是系统托盘加一个小界面)小窗模式下不会显示主界面,截屏(Alt+z)、小窗翻译(Alt+x)、录屏(Alt+c)、键鼠动作录制(Alt+1)播放(Alt+2)均可以用(用快捷键/系统托盘)调用,所有功能显示均在小窗显示, 不会打开主界面,小窗可以(回车)翻译(英-中),双击系统托盘可以进入主界面 ##大部分功能可以在系统托盘调用!

    功能展示

    酱截屏(全局快捷键Alt+z)

    • 截屏功能页面,包含隐藏窗口、自动保存文件、复制文件还是图像数据、滚动截屏参数等

    image

    • 支持截屏时选区录屏、文字识别(离线)、翻译等

    image

    • 支持滚动截屏(长截图)

    image

    • 截屏时有各种画笔橡皮擦工具、透视裁剪、油漆桶、多边形截图等工具

    image image

    • 支持将截屏固定到屏幕上,固定的截屏可以快速放大缩小(鼠标滚轮)、设置透明度、边框、置顶、文字识别等方便的操作

    image

    酱录屏(全局快捷键Alt+c)

    支持设定录屏区域、录屏码率、帧率、录制鼠标、硬件加速、录制gif等各种常见格式的视频

    image

    酱识字

    文字识别已经集成到截屏、固定截屏等页面,也可以通过主窗口的这个页面进行手动调用,支持批量识别。基于paddleocr离线识别。 image

    酱转换

    各种多媒体格式转化

    • 裁剪拼接

    支持图片、视频、音频的简单裁剪拼接

    image

    • 压缩转码

    支持各种图片批量调整分辨率和格式、批量调整视频码率、帧率、分辨率等;

    支持视频批量压缩,视频格式转换(包含gif等常见格式转换),支持视频批量打马赛克、批量添加、去水印(这个只是添加一个模糊而已);

    支持音频批量格式、码率调整

    支持gif批量压缩

    image

    • 提取混合

    支持将从视频提取音频、去除音频、混合音频,从视频中抽取图片帧,图片转视频,批量文件重命名等

    image

    酱控制

    • 录制你的键鼠动作并无限制重放动作,适用于批量重复操作的自动化,支持简单的播放条件设置

    image image

    酱传输

    局域网文件传输功能,能够在局域网内快速传输文件,有通过客户端传输和通过网页端传输两种方式。

    • 通过客户端传输,双方都装有jamtools,直接通过连接码建立连接,即可互发文件,支持断点续传、多线程传输

    image

    • 网页端传输,有一方安装jamtools,选择共享文件夹,即可共享链接,对方可以下载该文件夹内的文件或者上传文件到文件夹,支持断点续传、多文件批量下载等

    image

    酱聊天

    • 彩蛋功能,聊天机器人

    image

    其它功能

    image

    • 右键划屏提字/翻译

    按下alt使用鼠标右键框选屏幕,即可快速提取框选中区域的文字并翻译

    image

    • 智能剪切板,识别到剪切板改变内n秒(可以在设置内更改),按下shift+ctrl+z,可以快速翻译、打开链接(快速打开浏览器进入页面)、复制百度云提取码等操作

    项目目录

    目录结构:
    │  CoreModels.py //主要核心文件,存放主要功能启动函数的地方,可以直接运行
    │  main.py //主程序文件,但是只是用来存放引入库的文件,防止打包出错,运行一键构建脚本将会自动编写该文件
    │  WEBFilesTransmitter.py //网页端传输模块
    │  WEBFilesTransmittertest.py //网页端传输模块测试例子,单独ui
    │  clientFilesTransmitter.py //客户端传输模块
    │  clientFilesTransmittertest.py //客户端传输测试例子,单独ui
    │  jamcontroller.py //酱控制模块
    │  jamscreenshot.py //截屏模块
    │  jamroll_screenshot.py //滚动截屏模块
    │  jampublic.py //一些非常常用的公共引用类/方法,如翻译文字识别线程类等
    │  jamresourse.py //转化的资源文件
    │  jamtoolsbuild.py //一键构建脚本,调用该脚本即可自动分析项目引用,自动配置项目文件,自动编译/打包等, 基于fbs,后续将移除
    │  setjam.py //附加编译脚本,如在构建脚本中设置了编译,则会调用该脚本将所有库转化为c文件后编译,需要Cython支持
    |  以下几个库文件是(作者自行编译的)不同平台下的缩略版opencv库(10M+),现在默认clone的项目将不会包含这些文件(因为太大了clone起来太慢),已经放在release里面了,要小一点的文件的话就自己去下载,或者直接安装完全版的opencv-contrib-python==3.4.2.17(70M+)..
    │ \ cv2.cp37-win_amd64.pyd //windows下编译的opencv库,如需扩展功能,请自行安装opencv-contrib-python==3.4.2.17
    │ \ opencv_world341.dll
    │ \ cv2.cpython-37m-darwin.so //macos下编译的opencv库
    │ \ libopencv_world.3.4.1.dylib
    │ \ cv2.so //linux下编译的opencv库
    │ \ libopencv_world.so.3.4.1
    │  requirement.txt //依赖列表
    │  audio_sniffer-x64.dll //windows下录音驱动
    │  screen-capture-recorder-x64.dll //windows下录屏驱动
    │  log.log //日志文件
    │  README.md
    │  LICENSE
    │  
    ├─bin
    │  ├─darwin
    │  │     ... //macos下存放ffmpeg和gifsicle可执行文件的文件夹,请自行下载,下同
    │  │      
    │  ├─linux
    │  │     ... //linux下的...
    │  │      
    │  └─win32
    │         ... //window下的..
    │          
    ├─html //网页前端
    │  │  favicon.ico
    │  │  index.html //登录界面
    │  │  jamlistdir.html //下载页面
    │  │  jamupload.html //上传页面
    │  │  test.html //测试
    │  │  
    │  ├─fonts //字体
    │  │      fontawesome-webfont.eot
    │  │      fontawesome-webfont.svg
    │  │      fontawesome-webfont.ttf
    │  │      fontawesome-webfont.woff
    │  │      fontawesome-webfont.woff2
    │  │      FontAwesome.otf
    │  │      
    │  ├─jamcss //css文件夹
    │  │      font-awesome.css
    │  │      JamTools.css
    │  │      login.css
    │  │      
    │  ├─jamhtmlpic //图标文件夹
    │  │      jamdowload.png
    │  │      
    │  └─jamjs //存放js的文件夹
    │          jquery-1.11.0.js
    │          jquery.cookie.js
    │          spark-md5.js
    │          
    ├─imagefiles //存放图片的文件夹,
    │  │  jamresourse.py //转化后的的资源文件
    │  │  jamresourse.qrc //资源文件列表
    │  │  setjamresourse.py //资源文件一键打包脚本,用于将图片文件转化为py文件,需要pyrcc支持
    │  │  ... //图片文件
    │  │  ...
    │  │  ...
    │  │  
    │          
    ├─src //fbs打包的项目文件夹,通过一键构建脚本即可自动配置该目录(不用管)
    │  ├─build
    │  │  └─settings //打包信息
    │  │          base.json
    │  │          linux.json
    │  │          mac.json
    │  │          
    │  ├─installer
    │  │  └─windows
    │  │          Installer.nsi //Windows下的nsis构建脚本
    │  │          
    │  └─main
    │      ├─icons //图标文件夹
    │      │  │  Icon.ico
    │      │  │  README.md
    │      │  ├─base
    │      │  │      512.png
    │      │  ├─linux
    │      │  │      512.png
    │      │  └─mac
    │      │         512.png
    │      │          
    │      ├─python //存放源码的文件夹
    │      │  │  clientFilesTransmitter.py
    │      │  │  jamcontroller.py
    │      │  │  jampublic.py
    │      │  │  jamresourse.py
    │      │  │  jamroll_screenshot.py
    │      │  │  jamscreenshot.py
    │      │  │  main.py
    │      │  │  CoreModels.py
    │      │  │  WEBFilesTransmitter.py
    │      │  │  
    │      │  └─__pycache__
    │      │          main.cpython-37.pyc
    │      │          
    │      └─resources //存放附加资源的文件夹
    │          └─base
    └─target //fbs打包输出文件夹
    │
    │
    └─testfiles //测试文件存放的文件夹,功能如名,只是用来测试最小例子
            ffmpegtest.py
            text2audio.py
            win32end2.py
            全局快捷键.py
            图片遮罩.py
            拼接部分相同图片(暴力遍历法).py
            比较相同.py
            泛洪填充.py
            滚动截屏2.0.py
            滚动截屏2.1.py
            滚动截屏3.0.py
            滚动截屏demo.py
            特征提取test.py
            相似拼接cv.py
            连接测试.py
            透视变换test.py
            透视裁剪test.py
    

    使用及依赖

    测试环境python3.7.8 in win7/8/10/11、ubuntu20.04/18.04/16.04、MacOS10.13/10.15

    Wheel
    Pillow
    pynput
    qrcode
    requests
    urllib3
    pyttsx3
    PyInstaller
    baidu-aip
    PyQt5==5.14
    PyQt5-sip
    PyQt5-stubs
    onnxruntime
    shapely
    pyclipper
    qt_material
    numpy
    Cython==0.29.21
    fake-useragent==0.1.11
    setuptools
    chardet
    comtypes
    opencv-python # 如果需要更小体积的cv2,则可以从[这里](https://github.com/fandesfyf/JamTools/releases/tag/0.12.5)下载我重新编译好的删减版
    
    

    也可以通过pip3 install -r requirement.txt安装所有依赖

    此外,本软件多媒体处理能力主要依赖于ffmpeg库,需要自行下载ffmpeg(用于录屏和多媒体处理)和gifsicle(用于gif压缩)可执行文件放到bin目录对应操作系统的文件夹下,方可使用对应功能.

    打包安装程序

    原本的打包基于fbs库,但是高版本的fbs开始收费了,所以换成了cx_Freeze进行打包(感觉更好用了,白嫖真爽!)

    • 最近发现新版的 pyinstaller 打包pyqt5程序也挺好用的了,改成用pyinstaller进行打包(白嫖真爽+1)
    # 需要安装/升级pyinstaller
    pip3 install --upgrade pyinstaller
    
    • windows/ubuntu下打包:
    
    pyinstaller installer.spec -y
    

    会输出到dist中

    • windows 下打包为安装程序:

    使用NSIS(Nullsoft Scriptable Install System)打包为安装程序,提供了一个安装程序脚本到./build/windows/Installer.nsi中,具体用法可以参考nsis教程

    • ubuntu下打包为deb包:

    提供了几个有用的脚本在./build/ubuntu下供参考

    TODO:

    • macos下打包还没有尝试,没有机器,pyinstaller应该是通用的流程,如果有人试过,欢迎提供脚本或教程