# image-compress **Repository Path**: championwang/image-compress ## Basic Information - **Project Name**: image-compress - **Description**: 基于 **Python + Gradio** 的在线图片压缩工具,支持批量上传、实时压缩、信息对比与批量下载。所有处理均在本地完成,不上传任何数据到第三方服务器。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-10 - **Last Updated**: 2026-06-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: 图片压缩 ## README # 🖼 Image Compress — 图片压缩工具 基于 **Python + Gradio** 的在线图片压缩工具,支持批量上传、实时压缩、信息对比与批量下载。所有处理均在本地完成,不上传任何数据到第三方服务器。 ## ✨ 功能特性 - **批量上传** — 一次可上传多张图片,支持 JPEG / PNG / WebP / BMP 格式 - **质量调节** — 拖拽滑块控制压缩质量(10–100),平衡体积与画质 - **尺寸缩放** — 设置长边最大像素值,超出自动等比缩小,0 表示保持原尺寸 - **格式转换** — 支持保持原格式或统一输出为 JPEG / PNG / WebP / BMP - **信息对比** — 表格清晰展示每张图片压缩前后的尺寸、大小和压缩率 - **批量下载** — 所有压缩结果一键打包为 ZIP 下载 - **本地处理** — 图片仅在本地处理,不会上传到任何远程服务器 ## 📸 截图预览 ``` ┌──────────────────────────────────────────────────┐ │ 🖼 图片压缩工具 │ │ 批量上传图片,一键压缩... │ ├───────────────────────┬──────────────────────────┤ │ 📤 上传区域(批量) │ 压缩质量 [====●===] 75 │ │ │ 最大尺寸 [====●===] 1920│ │ │ 输出格式 [原格式保持 ▼] │ │ │ [🚀 开始压缩] │ ├───────────────────────┴──────────────────────────┤ │ 📊 压缩结果对比 │ │ 文件名 │ 原尺寸 │ 原大小 │ 格式 │ 压缩后 │ 压缩率 │ │ a.jpg │ 4000×3000 │ 2.5MB │ JPEG │ 1920×1440 │ 450KB │ ↓82% │ │ b.png │ 800×600 │ 1.2MB │ PNG │ 800×600 │ 380KB │ ↓68% │ ├───────────────────────────────────────────────────┤ │ ✅ 成功压缩 2 张 | 原图 3.7MB → 830KB | 整体 ↓77% │ │ 📥 [compressed_images.zip] │ └───────────────────────────────────────────────────┘ ``` ## 🛠 技术栈 | 层级 | 技术 | |---|---| | Web UI | Gradio 6.x | | 图像处理 | Pillow | | 打包下载 | Python zipfile | | 容器化 | Docker + Docker Compose | ## 🚀 快速开始 ### 环境要求 - Python 3.10+ - (可选)Docker & Docker Compose ### 方式一:本地运行 ```bash # 1. 克隆项目 cd image-compress # 2. 创建虚拟环境(推荐) python -m venv .venv source .venv/bin/activate # Linux / macOS .venv\Scripts\activate # Windows # 3. 安装依赖 pip install -r requirements.txt # 4. 启动服务 python app.py ``` 浏览器打开 **http://localhost:7860** 即可使用。 ### 方式二:Docker 运行 ```bash # 构建并启动(后台运行) docker compose up -d --build # 查看日志 docker compose logs -f # 停止服务 docker compose down ``` ## 📖 使用指南 ### 基础流程 1. **上传图片** — 点击上传区域,选择一张或多张图片(可直接拖拽) 2. **调节参数** — 设置压缩质量、最大尺寸、输出格式 3. **开始压缩** — 点击按钮,等待处理完成 4. **查看结果** — 表格显示每张图片的压缩对比数据 5. **下载文件** — 点击 ZIP 包下载所有压缩后的图片 ### 参数说明 | 参数 | 说明 | 推荐值 | |---|---|---| | 压缩质量 | 仅对 JPEG/WebP 生效,10 最小、100 最高 | 75 | | 最大尺寸 | 长边超过该值时等比缩小,0 = 不缩放 | 1920 | | 输出格式 | 保持原格式或统一转换为指定格式 | 原格式保持 | ### 格式兼容性说明 - **JPEG** — 不支持透明通道,透明图片会自动添加白色背景 - **PNG** — 无损压缩,适合带透明通道的图片 - **WebP** — 支持有损 + 透明,同等质量下体积更小 - **BMP** — 无压缩,不推荐作为输出格式 ## 📁 项目结构 ``` image-compress/ ├── app.py # 主程序入口 ├── requirements.txt # Python 依赖 ├── Dockerfile # Docker 镜像构建 ├── docker-compose.yml # Docker Compose 编排 ├── .dockerignore # Docker 构建忽略文件 └── README.md # 项目文档 ``` ## ⚖️ 许可 MIT License