GitHub 项目开源地址:https://github.com/cheng01315/batch-image-watermark
🎯 核心功能亮点
1. 随心所欲的水印布局引擎
- 单水印模式:预设 9 个锚点(左上 / 上中 / 右上 / 左中 / 中心 / 右中 / 左下 / 下中 / 右下),支持边距与 XY 方向的像素级微调。
- 平铺全屏模式:提供标准网格(Grid)、砖墙交错(Brick)和对角线无缝(Diagonal)3 种防盗平铺策略,X/Y 轴间距可独立设置。
- 任意角度旋转:支持水印 ±180° 旋转,轻松做出倾斜防盗效果。
2. 专业级的水印效果与画质控制
- 完美透明度混合:0% ~ 100% 自由调节,Alpha 通道精确混合,不生硬。
- 智能缩放:支持基于原图尺寸的百分比缩放,或强制指定绝对像素宽度。
- Lanczos3 重采样:采用高质量重采样算法,确保缩放后的 Logo 依然清晰,告别模糊与锯齿。
3. 快如闪电的批量导出引擎
- 多线程并发:基于 Rust 的
rayon并行库,吃满你的多核 CPU,成百上千张图片瞬间处理完毕。 - 智能命名冲突策略:支持自动重命名(追加
_wm后缀)、覆盖同名或跳过,防止误操作。 - 灵活格式转换:支持 PNG、JPEG、BMP、WebP 输入。导出时可保持原格式,或统一转换为 JPEG(质量可调)/ PNG 输出。
🖼️ 极简的交互界面
工具采用了经典的“左侧控制面板 + 右侧画布”布局。参数修改后右侧实时预览(自动缩放适配窗口),并配有原生的文件选择对话框和 Toast 提示,带给您丝滑的桌面端操作体验。

📌 建议:水印图片推荐使用带透明通道的 PNG 格式,合成效果最佳。
🎮 6 步搞定图片批量加水印
- 第 1 步:选择水印图案 —— 导入你的品牌 Logo(推荐透明 PNG)。
- 第 2 步:导入待处理图片 —— 支持选择单张图片,或者直接选择整个文件夹(会自动递归遍历子目录)。
- 第 3 步:调整水印参数 —— 在左侧面板调节位置、平铺策略、透明度、缩放比例或旋转角度。
- 第 4 步:实时查看预览 —— 在右侧画布直接预览最终合成效果,所见即所得。
- 第 5 步:设置输出选项 —— 选择导出格式(JPEG/PNG)、压缩质量以及文件名冲突策略。
- 第 6 步:一键开始批量导出 —— 点击导出,通过实时进度条查看速度。完成后还会弹出包含成功/失败/跳过计数的详细报告。
🛠️ 开发者指南:单文件极简架构
如果您也是 Rust 爱好者,该项目同样是一个非常适合学习 egui 界面开发与图像处理的开源范本。项目源码约 1600 行,全部凝聚在 main.rs 单文件中,结构清晰。
技术栈一览
| 类别 | 核心库 | 用途 |
|---|---|---|
| GUI 框架 | eframe + egui (v0.28) |
即时模式(Immediate Mode)跨平台桌面 UI |
| 图像编解码 | image + imageproc |
负责多格式读写、仿射变换与 Alpha 混合 |
| 并发加速 | rayon |
充分发挥多核性能的并行批处理 |
| 系统交互 | rfd + directories |
原生文件对话框调用与跨平台用户配置持久化 |
Release 编译优化
项目在 Cargo.toml 中配置了极致的体积优化(开启了 lto = "fat"、codegen-units = 1、strip = true、panic = "abort")。最终编译出的 Windows 单文件 EXE 体积仅 5 ~ 8 MB,无任何外部 DLL 依赖,真正的绿色免安装,下载即用!
📌 支持的图片格式明细
| 格式 | 读取(Input) | 导出(Output) | 备注 |
|---|---|---|---|
| PNG | ✅ 支持 | ✅ 支持 | 支持高质量透明通道混合 |
| JPEG | ✅ 支持 | ✅ 支持 | 导出时可自由调节 1~100 的画质系数 |
| BMP | ✅ 支持 | ❌ 需转换 | 导出时需统一转换为 JPEG 或 PNG |
| WebP | ✅ 支持 | ❌ 需转换 | 导出时需统一转换为 JPEG 或 PNG |
欢迎前往 GitHub 仓库 Star 支持!如果您在使用过程中有任何功能建议(比如期望加入文字水印、字体选择等),欢迎在评论区或 GitHub Issues 中留言交流。




