v2.0是模块化重构版本,采用了更清晰的代码架构,并添加了暂停/恢复、断点续传、压缩预览和历史记录等新功能。
- 压缩过程中可随时暂停
- 暂停后可以恢复继续压缩
- 暂停时间不计入总压缩时间
- 压缩中断后自动保存断点数据
- 重新启动程序时可选择继续未完成的压缩
- 自动跳过已完成的文件
- 可选择单个文件进行测试压缩
- 预览压缩效果和压缩率
- 输出文件保存到临时目录
- 自动保存每次压缩的统计信息
- 查看历史压缩记录
- 查看详细压缩统计和配置信息
- 支持清空历史记录
-
config_manager.py- 配置管理模块- 统一管理所有配置项
- 配置验证和默认值处理
- 配置文件读写
-
file_processor.py- 文件处理模块- 路径规范化和验证
- 权限检查
- 磁盘空间检查
- 文件大小估算
-
image_compressor.py- 图片压缩模块- 图片压缩处理
- 支持JPG, PNG, BMP等格式
- 自动调整尺寸
-
video_compressor.py- 视频压缩模块- CPU编码支持
- AMD GPU加速(AMF编码器)
- Nvidia GPU加速(NVENC编码器)
- 自动回退机制
-
compression_history.py- 历史记录模块- 压缩记录保存
- 历史记录查询
- 历史记录管理
-
compress_tool.py- 主程序- UI界面
- 业务流程控制
- 事件处理
| 功能 | v1.0 | v2.0 |
|---|---|---|
| 模块化架构 | ❌ | ✅ |
| 暂停/恢复 | ❌ | ✅ |
| 断点续传 | ❌ | ✅ |
| 压缩预览 | ❌ | ✅ |
| 历史记录 | ❌ | ✅ |
| GPU加速 | AMD + Nvidia | AMD + Nvidia |
| 批量操作 | ✅ | ✅ |
| 文件过滤 | ✅ | ✅ |
-
选择源文件夹和目标文件夹
- 点击"浏览"按钮选择文件夹
- 支持Ctrl+O(源文件夹)、Ctrl+D(目标文件夹)
-
设置压缩参数
- 照片质量:0-100
- 视频CRF:18-28
- 视频预设:ultrafast 到 veryslow
- 编码模式:CPU / AMD GPU / Nvidia GPU
-
开始压缩
- 点击"开始压缩"按钮或按Ctrl+R
- 可随时暂停(Ctrl+P)或停止(Ctrl+T)
- 暂停后可恢复(Ctrl+U)
- 压缩过程中点击"暂停"按钮
- 暂停后点击"恢复"继续压缩
- 暂停时间不计入总压缩时间
- 压缩中断后会自动保存断点数据
- 重新启动程序时会提示是否继续
- 选择"是"可继续未完成的压缩
- 点击"压缩预览"按钮
- 选择一个文件进行测试压缩
- 查看压缩效果和压缩率
- 点击"历史记录"按钮查看
- 查看每次压缩的详细统计
- 支持查看详情和清空历史
Ctrl+O- 选择源文件夹Ctrl+D- 选择目标文件夹Ctrl+E- 打开输出文件夹Ctrl+S- 保存设置F5- 刷新文件列表Ctrl+R- 开始压缩Ctrl+P- 暂停压缩Ctrl+U- 恢复压缩Ctrl+T- 停止压缩Ctrl+Q- 退出程序
- 单一职责原则:每个模块只负责一个功能
- 依赖注入:模块间通过接口交互
- 易于测试:模块可独立测试
- 后台线程扫描文件,避免UI阻塞
- 批量更新UI,提升响应速度
- 索引映射优化文件查找
- 非阻塞进度显示,集成在主界面
- 实时统计信息更新
- 详细的操作提示和错误信息
v2/
├── __init__.py # 包初始化
├── compress_tool.py # 主程序
├── config_manager.py # 配置管理
├── file_processor.py # 文件处理
├── image_compressor.py # 图片压缩
├── video_compressor.py # 视频压缩
├── compression_history.py # 历史记录
├── ui_components.py # UI组件(可选)
├── README.md # 说明文档
├── config.ini # 配置文件(自动生成)
├── checkpoint.json # 断点数据(自动生成)
└── history/ # 历史记录目录(自动创建)
└── compression_history.json
- Python 3.7+
- tkinter(Python标准库)
- Pillow (PIL) >= 9.0.0
- FFmpeg(用于视频压缩,程序支持自动检测和下载)
- configparser(Python标准库)
- opencv-python >= 4.5.0(用于视频预览功能,可选)
Windows平台:
- 程序启动时会自动检测FFmpeg
- 如果未找到,会提示并支持从官网自动下载
- 下载的文件会自动解压到
bin目录
其他平台:
- 请手动安装FFmpeg
- 添加到系统PATH环境变量中
- 或配置FFmpeg路径到程序中
-
克隆仓库(或下载代码)
git clone <repository-url> cd <repository-name>/v2
-
安装Python依赖
pip install -r requirements.txt
-
运行程序
python compress_tool.py
-
FFmpeg安装
- Windows:程序会自动检测并提供下载选项
- 其他平台:请手动安装FFmpeg并添加到PATH
- FFmpeg路径:
- Windows:程序支持自动下载到
bin目录 - 其他平台:确保FFmpeg可执行文件在系统PATH中或正确配置路径
- Windows:程序支持自动下载到
- GPU驱动:使用GPU加速需要安装对应的显卡驱动
- 磁盘空间:压缩前会自动检查磁盘空间,确保有足够空间
- 断点数据:断点数据保存在
checkpoint.json,不要手动删除正在使用的断点文件 - 临时文件:预览功能会创建临时文件,关闭预览窗口后会自动清理
- ✨ 模块化重构,代码更清晰
- ✨ 添加暂停/恢复功能
- ✨ 添加断点续传支持
- ✨ 添加压缩预览功能(图片左右对比,视频信息显示)
- ✨ 添加历史记录功能
- ✨ 改进UI,进度显示集成在主界面,现代化配色
- ✨ FFmpeg自动检测和下载功能(Windows平台)
- ✨ 内存优化,使用__slots__减少内存占用
- ✨ 优化文件列表显示,支持排除文件夹
- ✨ 自动排除非媒体文件选项
- 🐛 修复已知问题
- 📝 完善文档
Copyright © 2024-2025 批量文件压缩工具 保留所有权利
本软件仅供个人学习和非商业用途使用。