# tinypng **Repository Path**: xqshadow/tinypng ## Basic Information - **Project Name**: tinypng - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-26 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TinyPNG Pro - 批量图片压缩与格式转换工具 一个基于Vue.js前端和Python Flask后端的Web应用程序,提供批量图片压缩和格式转换功能。 ## 功能特性 - **批量图片压缩** - 支持TinyPNG API压缩(需要API密钥) - 支持本地Pillow库压缩 - 显示压缩前后文件大小对比和压缩率 - **批量图片格式转换** - 支持PNG、JPG、WEBP、GIF格式互转 - 自动处理透明通道转换 - **文件管理** - 自动清理过期文件(默认保留1天) - 自动清理过期日志(默认保留7天) - **其他特性** - 支持中文文件名 - 详细的日志记录 - 健康检查接口 ## 技术栈 ### 前端 - Vue.js 3 - Element Plus UI组件库 - Axios HTTP客户端 ### 后端 - Python Flask - TinyPNG API - Pillow (PIL) 图像处理库 - Gunicorn WSGI服务器 ## 项目结构 ``` tinypng-pro/ ├── backend/ # 后端代码 │ ├── app.py # 主应用入口 │ ├── config/ # 配置 │ ├── modules/ # 功能模块 │ ├── utils/ # 工具函数 │ ├── static/ # 静态文件 │ └── requirements.txt # Python依赖 ├── frontend/ # 前端代码 │ ├── public/ # 公共资源 │ ├── src/ # 源代码 │ └── package.json # 前端依赖 ├── manage.py # 服务管理脚本 └── README.md # 项目文档 ``` ## 快速开始 ### 1. 安装依赖 ```bash # 后端依赖 cd backend pip install -r requirements.txt # 前端依赖 cd ../frontend npm install ``` ### 2. 配置TinyPNG API密钥 在`backend/config/settings.py`中设置您的TinyPNG API密钥: ```python TINIFY_API_KEY = "your-api-key-here" ``` ### 3. 启动服务 使用管理脚本启动服务: ```bash ./manage.py start ``` 或手动启动: ```bash # 启动后端 cd backend python app.py # 启动前端 (另一个终端) cd ../frontend npm run dev ``` ### 4. 访问应用 - 前端: http://localhost:3000 - 后端API: http://localhost:5001 ## 管理命令 ```bash # 启动服务 ./manage.py start # 停止服务 ./manage.py stop # 重启服务 ./manage.py restart # 查看服务状态 ./manage.py status ``` ## 配置选项 可在`backend/config/settings.py`中修改以下配置: - 文件大小限制 (`MAX_FILE_SIZE`) - 文件数量限制 (`MAX_FILES_COUNT`) - 文件保留天数 (`FILE_RETENTION_DAYS`) - 日志保留天数 (`LOG_RETENTION_DAYS`) - 服务器端口 (`SERVER_PORT`) ## API文档 ### 图片压缩 - `POST /api/compress` - 参数: - `files[]`: 图片文件数组 - `method`: 压缩方法 (`tinypng` 或 `local`) ### 图片格式转换 - `POST /api/convert` - 参数: - `files[]`: 图片文件数组 - `format`: 目标格式 (`png`, `jpg`, `webp`, `gif`) ### 文件下载 - `GET /api/files/compressed/{filename}` - `GET /api/files/converted/{filename}` ### 健康检查 - `GET /api/health` ## 注意事项 1. 使用TinyPNG API压缩需要有效的API密钥 2. 默认每个文件大小限制为30MB 3. 默认单次最多上传10个文件 4. 上传的文件会在24小时后自动删除 5. 日志文件会在7天后自动删除 ## 许可证 MIT License