JamTools 介绍
JamTools 是一款跨平台的小工具集软件,支持 Windows 7/8/10/11、macOS、Ubuntu 系统(其他系统可直接从源码编译打包)。它涵盖了多种实用功能,如截屏、录屏、文字识别、多语言互译、多媒体格式转换、鼠标键盘动作录制与播放、局域网文件传输及聊天机器人等。该软件完全开源!
部分功能模块已独立整理为项目,包括:截屏功能、滚动截屏功能、视频播放器项目、网页端传输项目及客户端传输项目。
功能简介
酱截屏
截图功能快捷键为 Alt+Z,支持选区截图、多边形截图、滚动截屏等。用户可以将截图文件或图像数据复制到剪贴板,支持文字识别和翻译。左侧工具栏提供画笔、橡皮擦等简单绘图工具。滚动截屏功能支持自动和手动滚动,拼接准确率高,并且集成了录屏功能,可在截图时选区录屏。
酱识字
完全离线的文字识别功能。截屏提取文字功能已集成在截屏界面的小窗内,使用方便。此外,还可以批量识别上传的一张或多张图片中的文字,并且支持右键划屏提取任意位置的文字。
酱翻译
支持多语言翻译功能,无快捷键(极简模式下可通过浮窗使用)。用户可以输入文字进行多种语言互译,翻译功能已集成到截屏等界面。
酱录屏
录屏功能快捷键为 Alt+C,支持多种格式的屏幕录制,包括 GIF 等。用户可以选择录制区域或全屏录制,自定义编码速率、帧率、视频质量和声音源。录屏结束后点击通知可直接播放。
酱转换
提供多媒体文件的裁剪、拼接、压缩转码、提取混合等多种功能,类似于格式工厂,用户可自行探索。
酱控制
鼠标键盘所有动作的录制和重放功能,快捷键为 Alt+1 录制,Alt+2 播放/停止,F4 强制停止。支持批量重复操作自动运行,录制的动作脚本文件 (.jam) 可直接双击或拖入运行。
酱传输
提供快速的局域网传输功能,有客户端点对点连接和网页端共享两种方式,均支持数据双向传输。客户端传输通过连接码自动搜索并连接主机,网页端共享文件夹或其中的文件,支持文件上传和密码设置。
酱聊天
这是一个彩蛋功能,内置傻d机器人在线陪聊,来自思知人工智能平台。支持多轮对话,服务器速度较慢,但也提供了知识库训练支持。默认保留 50000 字节的聊天记录。
其他功能
划屏提字
在任何界面按下 Alt 键后用鼠标右键框选区域即可提取文字,并可设置自动翻译。
剪贴板翻译
监控剪贴板内容,在内容变化 7 秒内按下 Shift+Ctrl+Z 键触发,支持自动中英文翻译、网页自动打开、百度云链接提取码自动复制等。
小窗模式
系统托盘加小界面模式,小窗模式下不会显示主界面,截屏(Alt+Z)、小窗翻译(Alt+X)、录屏(Alt+C)、键鼠动作录制(Alt+1)及播放(Alt+2)均可调用,所有功能均在小窗显示。
JamTools 的多功能设计使其成为日常工作和学习的得力助手,提供了高效、便捷的使用体验。
功能展示
酱截屏(全局快捷键Alt+z)
- 截屏功能页面,包含隐藏窗口、自动保存文件、复制文件还是图像数据、滚动截屏参数等
JamTools 1
- 支持截屏时选区录屏、文字识别(离线)、翻译等
JamTools 2
- 支持滚动截屏(长截图)
- 截屏时有各种画笔橡皮擦工具、透视裁剪、油漆桶、多边形截图等工具

- 支持将截屏固定到屏幕上,固定的截屏可以快速放大缩小(鼠标滚轮)、设置透明度、边框、置顶、文字识别等方便的操作
JamTools 4
酱录屏(全局快捷键Alt+c)
支持设定录屏区域、录屏码率、帧率、录制鼠标、硬件加速、录制gif等各种常见格式的视频

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

酱转换
各种多媒体格式转化
- 裁剪拼接
支持图片、视频、音频的简单裁剪拼接

- 压缩转码
支持各种图片批量调整分辨率和格式、批量调整视频码率、帧率、分辨率等;
支持视频批量压缩,视频格式转换(包含gif等常见格式转换),支持视频批量打马赛克、批量添加、去水印(这个只是添加一个模糊而已);
支持音频批量格式、码率调整
支持gif批量压缩

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

酱控制
- 录制你的键鼠动作并无限制重放动作,适用于批量重复操作的自动化,支持简单的播放条件设置
JamTools 10
酱传输
局域网文件传输功能,能够在局域网内快速传输文件,有通过客户端传输和通过网页端传输两种方式。
- 通过客户端传输,双方都装有jamtools,直接通过连接码建立连接,即可互发文件,支持断点续传、多线程传输
JamTools 12
- 网页端传输,有一方安装jamtools,选择共享文件夹,即可共享链接,对方可以下载该文件夹内的文件或者上传文件到文件夹,支持断点续传、多文件批量下载等
JamTools 13
酱聊天
- 彩蛋功能,聊天机器人
JamTools 14
其它功能
- 右键划屏提字/翻译
JamTools 15
按下alt使用鼠标右键框选屏幕,即可快速提取框选中区域的文字并翻译

- 智能剪切板,识别到剪切板改变内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应该是通用的流程,如果有人试过,欢迎提供脚本或教程
声明:所有白马号原创内容,未经允许禁止任何网站及个人转载、采集等一切非法引用。本站已启用原创保护,有法律保护作用,否则白马号保留一切追究的权利。发布者:白马号,转转请注明出处:https://www.bmhysw.com/article/50528.html