JamTools是一个跨平台的小工具集类软件,支持Windows7/8/10/11、Macos、ubuntu系统(其他系统可以直接从源码编译打包)。包含了(滚动/区域)截屏、录屏、文字识别、多种语言互译、多媒体格式转换、鼠标键盘动作录制播放、局域网文件传输、聊天机器人等功能,完全开源!
Last updated Jun 26, 2026
726
Stars
113
Forks
19
Issues
0
Stars/day
Attention Score
61
Topics
Language breakdown
Python 98.7%
HTML 0.5%
Jupyter Notebook 0.4%
JavaScript 0.3%
NSIS 0.1%
CSS 0.0%
▸ Files
click to expand
README
English | 中文文档
JamTools介绍
JamTools是一个跨平台的小工具集类软件,支持Windows7/8/10/11、Macos、ubuntu系统(其他系统可以直接从源码编译打包)。包含了(滚动/区域)截屏、录屏、(离线)文字识别、多种语言互译、多媒体格式转换、鼠标键盘动作录制播放、局域网文件传输、聊天机器人等功能,完全开源! 部分单独的模块已整理为项目: 截屏功能 滚动截屏功能 视频播放器项目 网页端传输项目 客户端传输项目功能简介:
- 酱截屏:
- 酱识字:
- 酱翻译:
- 酱录屏:
- 酱转换:
- 酱控制:
- 酱传输:
- 酱聊天:
- $其他功能:
- 小窗模式:(其实就是系统托盘加一个小界面)小窗模式下不会显示主界面,截屏(Alt+z)、小窗翻译(Alt+x)、录屏(Alt+c)、键鼠动作录制(Alt+1)播放(Alt+2)均可以用(用快捷键/系统托盘)调用,所有功能显示均在小窗显示, 不会打开主界面,小窗可以(回车)翻译(英-中),双击系统托盘可以进入主界面
功能展示
酱截屏(全局快捷键Alt+z)
- 截屏功能页面,包含隐藏窗口、自动保存文件、复制文件还是图像数据、滚动截屏参数等
- 支持截屏时选区录屏、文字识别(离线)、翻译等
- 支持滚动截屏(长截图)
- 截屏时有各种画笔橡皮擦工具、透视裁剪、油漆桶、多边形截图等工具
- 支持将截屏固定到屏幕上,固定的截屏可以快速放大缩小(鼠标滚轮)、设置透明度、边框、置顶、文字识别等方便的操作
酱录屏(全局快捷键Alt+c)
支持设定录屏区域、录屏码率、帧率、录制鼠标、硬件加速、录制gif等各种常见格式的视频
酱识字
文字识别已经集成到截屏、固定截屏等页面,也可以通过主窗口的这个页面进行手动调用,支持批量识别。基于paddleocr离线识别。
酱转换
各种多媒体格式转化- 裁剪拼接
- 压缩转码
- 提取混合
酱控制
- 录制你的键鼠动作并无限制重放动作,适用于批量重复操作的自动化,支持简单的播放条件设置
酱传输
局域网文件传输功能,能够在局域网内快速传输文件,有通过客户端传输和通过网页端传输两种方式。- 通过客户端传输,双方都装有jamtools,直接通过连接码建立连接,即可互发文件,支持断点续传、多线程传输
- 网页端传输,有一方安装jamtools,选择共享文件夹,即可共享链接,对方可以下载该文件夹内的文件或者上传文件到文件夹,支持断点续传、多文件批量下载等
酱聊天
- 彩蛋功能,聊天机器人
其它功能
- 右键划屏提字/翻译
- 智能剪切板,识别到剪切板改变内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.15Wheel
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,则可以从这里下载我重新编译好的删减版
也可以通过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 下打包为安装程序:
./build/windows/Installer.nsi中,具体用法可以参考nsis教程
- ubuntu下打包为deb包:
./build/ubuntu下供参考
TODO:
- macos下打包还没有尝试,没有机器,pyinstaller应该是通用的流程,如果有人试过,欢迎提供脚本或教程
🔗 More in this category