基于 Python Pillow,支持智能压缩、批量并行处理和多种专业级功能。
| 功能 | 说明 |
|---|---|
| ------ | ------ |
| 自动模式 | 自动尝试多组质量参数,推荐最佳平衡点 |
| 目标大小 | 指定目标文件大小(KB),自动二分查找最优质量 |
| 批量并行 | 多线程并发处理目录,大幅提升批量速度 |
| 质量压缩 | JPEG/WebP 质量 1-100 精确控制 |
| 尺寸调整 | 百分比缩放 50% 或固定尺寸 800x600 |
| 格式转换 | JPEG/PNG/WebP/BMP/TIFF 互转 |
| 信息查看 | 显示图片尺寸、色彩模式、EXIF 信息 |
| 无损PNG | PNG 无损深度压缩 (compress_level=9) |
| JSON输出 | 便于程序化处理的 JSON 格式结果 |
python scripts/compress.py input.jpg --auto
自动测试 q90/q80/q70/q60/q50 五组参数,显示对比表格并推荐最佳选项。
python scripts/compress.py input.jpg --target-size 200
自动二分查找能控制在 200KB 以内的最优质量。
python scripts/compress.py input.jpg output.jpg --quality 80
python scripts/compress.py ./images/ ./compressed/ --quality 75 --batch --jobs 4
python scripts/compress.py ./images/ ./webp/ --format webp --quality 80 --batch --recursive
python scripts/compress.py input.jpg --info
python scripts/compress.py ./images/ --quality 70 --batch --json > result.json
python scripts/compress.py input.png output.png --lossless
| 参数 | 说明 |
|---|---|
| ------ | ------ |
input | 输入文件或目录 |
output | 输出文件或目录 (可选) |
--quality, -q | 压缩质量 1-100 (默认 85) |
--resize, -r | 缩放 50% 或固定尺寸 800x600 |
--batch, -b | 批量处理目录 |
--format, -f | 输出格式 jpeg/png/webp/bmp/tiff |
--lossless | PNG 无损压缩模式 |
--target-size, -t | 目标文件大小 (KB),自动二分查找 |
--auto, -a | 自动模式:多组质量对比 + 推荐 |
--dry-run | 预览模式,只显示结果不保存 |
--keep-exif | 保留 EXIF 信息 |
--recursive | 递归处理子目录 |
--overwrite | 覆盖已有文件 |
--jobs, -j | 并行工作数 (默认 1,批量推荐 4) |
--json | JSON 格式输出 |
--info | 显示图片详细信息 |
--no-progress | 隐藏进度输出 |
| 格式 | 推荐质量 | 说明 |
|---|---|---|
| ------ | ---------- | ------ |
| JPEG | 70-85 | 80+ 对照片近乎无损,70 为良好平衡点 |
| WebP | 70-85 | 比 JPEG 小 25-35%,支持透明通道 |
| PNG | lossless | PNG 适合无损压缩,用 --lossless |
pip install pillow
--overwrite)--dry-run 预览压缩效果,确认后再执行--jobs 数建议不超过 CPU 核心数共 1 个版本