功能特性
- ✨ 多格式支持:支持 PNG、JPG 和 ICO 格式之间的转换
- 🔄 批量转换:支持同时上传和转换多个图片文件
- 🚀 高性能:使用并发处理技术,提高多文件转换效率
- 📝 简洁日志:自定义日志格式,去除冗余信息,易于阅读
- 🛡️ 安全可靠:包含文件大小限制和安全的文件名处理
- 🎨 透明背景处理:转换为 JPG 格式时自动处理透明背景
支持的转换格式
- PNG ↔ JPG
- PNG → ICO
- JPG → PNG
- JPG → ICO
- ICO → PNG
- ICO → JPG
技术栈
- 后端框架:Gin (https://github.com/gin-gonic/gin)
- 日志库:Zap (https://github.com/uber-go/zap)
- 图片处理:Golang 标准库
- ICO 支持:golang-image-ico (https://github.com/Kodeworks/golang-image-ico)
安装和使用
前置要求
- Go 1.16+ 环境
安装步骤
- 克隆项目到本地:
git clone <项目仓库地址>
cd iconverter
- 安装依赖:
go mod download
- 运行服务器:
go run main.go
- 访问应用:
打开浏览器访问 http://localhost:8020
使用说明
- 在网页界面中选择要转换的图片文件(支持多选)
- 选择目标格式(PNG、JPG 或 ICO)
- 点击"转换"按钮开始转换
- 转换完成后,点击下载链接获取转换后的图片
项目结构
iconverter/
├── main.go # 主程序入口和核心逻辑
├── templates/ # HTML模板文件
│ └── index.html # 主页面模板
├── static/ # 静态文件目录(存储转换后的图片)
├── logs/ # 日志文件目录
├── go.mod # Go模块依赖
├── go.sum # Go模块校验和
└── README.md # 项目说明文档
开发说明
构建项目
go build
运行测试
go test ./...
安全特性
- 文件大小限制:默认限制 10MB,防止过大文件攻击
- 安全的文件名处理:防止路径遍历攻击
- 输入验证:验证目标格式是否受支持
许可证
本项目采用 MIT 许可证,详情请见 LICENSE 文件。
联系方式
如有问题或建议,请通过以下方式联系:
- GitHub Issues:<项目仓库地址>/issues
感谢使用图片转换服务器! 🎉