离线 · 高效 · 美观 的桌面工具箱python-toolbox
文章目录功能特色通用特性截图预览快速开始1. 安装依赖2. 运行程序3. 打包为 EXEWindows使用指南图片压缩图片格式转换图片拼接图片转PDF图片缩放PDF合并PDF拆分文件去重插件开发创建插件插件配置现有插件配置系统打包发布环境要求打包步骤许可证闲时用AI写的一个 离线 · 高效 · 美观 的桌面工具箱python-toolbox。虽然现在AI发展很快有很多这类工具可以实现该工具箱的功能但是可能需要上传文件都服务器进行处理可能会导致信息泄漏因此该工具箱主打一个本地离线操作支持Windows和Mac版本mac版本不保证可用有问题可提issue。有兴趣的朋友可以试试。仓库链接GitHubhttps://github.com/yansheng836/python-toolboxgitcodehttps://gitcode.com/weixin_41287260/python-toolbox功能特色图标工具说明️图片压缩批量压缩 JPG/PNG/WebP可调质量支持格式互转图片格式转换批量转换 JPEG/PNG/WebP/BMP/TIFF/GIF 六种格式图片拼接多张图片横向或纵向拼成一张支持对齐设置️图片转PDF多张图片合并为一个 PDF支持拖拽排序图片缩放批量调整尺寸支持按比例/宽度/高度/指定宽高PDF合并多个 PDF 合并为一个支持拖拽调整顺序PDF拆分拆分 PDF 为图片或单页 PDF支持自定义页数文件去重按文件大小预筛选 内容 Hash 查找重复文件支持规则排序预览通用特性深色/浅色主题— 一键切换自动记忆偏好️拖拽支持— 多数工具支持直接拖拽文件到列表文件列表— 统一的交互体验支持添加/移除/排序/清空进度显示— 实时显示处理进度和状态完全离线— 所有处理在本地完成不上传任何数据插件扩展— 放入plugins/目录即可自动加载截图预览功能截图首页图片压缩图片格式转换图片拼接图片转PDF图片缩放PDF合并PDF拆分文件去重设置快速开始1. 安装依赖pipinstall-rrequirements.txt依赖包说明包用途PyQt6GUI 框架Pillow (PIL)图片处理img2pdfPDF 转换首选PyMuPDF (fitz)PDF 转换备选2. 运行程序python main.py3. 打包为 EXEWindows# 推荐使用 spec 文件打包已包含所有必要模块pyinstaller toolbox.spec# 使用 UPX 压缩减小体积pyinstaller --upx-dir/path/to/upx toolbox.spec⚠️注意必须使用toolbox.spec进行打包直接运行pyinstaller main.py会导致动态加载的插件模块缺失。使用指南图片压缩点击左侧「图片压缩」添加图片支持多选和拖拽选择输出格式保持原格式 / JPG / PNG / WebP调整压缩质量滑块建议 70~85%点击「开始压缩」图片格式转换点击左侧「图片格式转换」添加图片选择目标格式JPEG / PNG / WebP / BMP / TIFF / GIF调整转换质量点击「开始转换」图片拼接点击左侧「图片拼接」添加图片至少 2 张调整顺序选择拼接方向横向 / 纵向设置输出图片质量点击「开始拼接」图片转PDF点击左侧「图片转PDF」添加图片支持拖拽排序选择输出质量高质量 / 标准 / 压缩选择输出文件路径点击「开始转换」图片缩放点击左侧「图片缩放」添加图片选择缩放方式百分比 / 宽度 / 高度 / 指定宽高设置缩放参数勾选「保持宽高比」点击「开始缩放」PDF合并点击左侧「PDF合并」添加 PDF 文件支持拖拽排序调整 PDF 顺序上移 / 下移选择输出文件路径点击「开始合并」PDF拆分点击左侧「PDF拆分」添加一个 PDF 文件选择输出格式单页 PDF / 图片设置拆分页数单页 PDF 模式或图片格式图片模式点击「开始拆分」文件去重点击左侧「文件去重」选择要扫描的文件夹自动开始扫描三级过滤文件大小→快速Hash→完整Hash大幅提速选择去重规则点击「按规则排序」预览保留/删除标记确认无误后勾选要删除的分组点击「删除重复文件」并确认插件开发工具箱支持插件扩展将 Python 文件放入plugins/目录即可自动加载。创建插件新建plugins/my_tool.py# -*- encoding: utf-8 -*- 我的工具插件 fromtoolboximportToolPlugin,Card,AnimatedButton,ThemefromPyQt6.QtWidgetsimportQWidget,QVBoxLayout,QLabelclassMyTool(ToolPlugin):name我的工具description工具描述icondefcreate_ui(self)-QWidget:创建工具界面widgetQWidget()layoutQVBoxLayout(widget)layout.addWidget(QLabel(Hello, World!))returnwidgetdefupdate_theme(self,theme):响应主题切换必须实现pass插件配置在config.py的PLUGIN_MODULES列表中添加配置PLUGIN_MODULES[# ... 其他插件 ...{name:我的工具,icon:,description:工具描述,order:30,# 排序权重越小越靠前module:plugins.my_tool,class:MyTool,},]现有插件文件类名功能plugins/image_compressor.pyImageCompressor图片压缩plugins/image_format_converter.pyFormatConverter图片格式转换plugins/image_stitcher.pyImageStitcher图片拼接plugins/image_to_pdf.pyImageToPDF图片转 PDFplugins/image_scaler.pyImageScaler图片缩放plugins/pdf_merger.pyPDFMergerPDF 合并plugins/pdf_splitter.pyPDFSplitterPDF 拆分plugins/file_deduplicator.pyFileDeduplicator文件去重配置系统应用配置集中在config.py文件中配置项说明APP_NAME,APP_VERSION应用名称和版本号APP_DESCRIPTION,APP_COPYRIGHT应用描述和版权信息APP_WEBSITE_URL官方网站链接PLUGIN_MODULES插件列表名称、图标、描述、排序UI_CONFIG窗口大小、侧边栏宽度等 UI 设置THEME_CONFIG主题相关配置WELCOME_CONFIG欢迎页面文本内容修改config.py即可自定义应用外观和信息无需修改主程序代码。打包发布环境要求Python 3.8Windows 系统其他平台可修改 spec 后尝试打包步骤# 1. 生成版本信息文件python generate_version_info.py# 2. 验证打包依赖python verify_packaging.py# 3. 打包为 EXEpyinstaller toolbox.spec打包后的 EXE 文件位于dist/目录下。欢迎提交 PR 贡献新插件或功能许可证本项目为开源项目使用MIT协议欢迎自由使用和贡献。