🌟 如何用 semi-utils 批量添加相机参数水印?摄影师必备的免费图片处理工具全指南
semi-utils 是一款专为摄影爱好者打造的免费图片批量处理工具,能够自动添加相机型号、镜头参数、拍摄时间等水印信息,并支持多种排版布局和自定义配置。无论是社交媒体分享还是作品存档,都能让你的照片瞬间提升专业感!
📸 效果展示:一键变身专业摄影作品
以下是使用不同布局模板处理后的效果对比,所有示例均来自项目实际输出:
| 布局类型 | 效果预览 | 特点说明 |
|---|---|---|
| 右侧Logo水印 | ![]() |
经典布局,厂商Logo居右,参数信息清晰分层 |
| 黑红配色风格 | ![]() |
暗色调设计,适合高对比度作品展示 |
| 1:1正方形裁剪 | ![]() |
自动填充白边,完美适配Instagram等平台 |
| 背景模糊效果 | ![]() |
主体突出,背景虚化处理提升艺术感 |
所有布局模板均支持自定义调整,包括字体、颜色、Logo位置等细节参数。
🚀 快速上手:3步完成图片批量处理
🔍 准备工作
-
获取工具
通过Git克隆仓库到本地(需提前安装Git):git clone https://gitcode.com/gh_mirrors/se/semi-utils.git ~/semi-utils -
环境配置
进入项目目录并运行安装脚本:cd ~/semi-utils chmod +x install.sh ./install.sh -
素材准备
将需要处理的图片复制到input文件夹(如无此文件夹可手动创建):mkdir -p ~/semi-utils/input # 创建输入目录 cp /path/to/your/photos/* ~/semi-utils/input/ # 复制图片
⚙️ 核心功能:不止于水印的全能工具
📝 智能参数提取
自动读取照片EXIF信息,无需手动输入:
- 相机型号(Model)
- 镜头参数(LensModel)
- 拍摄参数(光圈、快门、ISO)
- 拍摄时间(Datetime)
🎨 9种预设布局
通过 config.yaml 可切换多种排版样式,满足不同场景需求:
| 布局名称 | 适用场景 | 示例图片 |
|---|---|---|
watermark_right_logo |
社交媒体分享 | ![]() |
square |
Instagram发布 | ![]() |
simple |
简洁文档配图 | ![]() |
✨ 高级自定义选项
修改配置文件实现个性化效果:
- 调整字体大小与颜色(支持系统字体和自定义字体)
- 开关厂商Logo显示(内置Canon、Sony、Fujifilm等品牌Logo)
- 设置白边宽度和背景色(支持RGB颜色代码)
📌 执行处理:一键批量生成
运行主程序并按提示操作:
cd ~/semi-utils
python3 main.py
根据终端提示输入 y 或直接回车开始处理,结果将保存在 output 文件夹中。
⚙️ 深度配置:打造专属水印风格
📄 配置文件详解
核心配置文件 config.yaml 位于项目根目录,主要包含以下设置项:
基础设置(base)
base:
font: ./fonts/AlibabaPuHuiTi-2-45-Light.otf # 常规字体路径
bold_font: ./fonts/AlibabaPuHuiTi-2-85-Bold.otf # 粗体字体路径
font_size: 1 # 字体大小比例
quality: 100 # 输出图片质量(1-100)
布局设置(layout)
layout:
type: watermark_right_logo # 布局类型
logo_enable: true # 是否显示Logo
logo_position: right # Logo位置(left/right)
完整配置说明可参考项目目录下的
config.yaml文件,所有参数均有详细注释。
📁 项目结构解析
semi-utils/
├── config.yaml # 主配置文件
├── main.py # 程序入口
├── utils.py # 核心工具函数
├── entity/ # 数据模型定义
│ ├── image_container.py # 图片容器类
│ └── config.py # 配置解析类
├── images/ # 示例图片
├── logos/ # 相机品牌Logo
└── fonts/ # 字体文件
💡 实用技巧:提升效率的进阶玩法
🖼️ 批量处理不同型号相机照片
系统会自动识别照片EXIF中的相机厂商信息,并匹配对应Logo(如Canon、Sony等),存放路径:logos/
📱 移动端适配方案
使用 square 布局并配合 quality: 85 设置,生成适合手机浏览的低体积图片:
layout:
type: square
base:
quality: 85
⏱️ 处理进度监控
大型相册处理时可通过终端输出查看实时进度,平均处理速度:
- 单张照片:约2-3秒
- 100张照片:3-5分钟(视电脑配置而定)
❓ 常见问题解决
🔧 依赖安装失败
如果运行 install.sh 提示缺少Python环境:
# Ubuntu/Debian
sudo apt install python3 python3-pip
# macOS (使用Homebrew)
brew install python3
🖼️ 图片处理后无水印
检查配置文件中布局类型是否正确,推荐默认值:
layout:
type: watermark_right_logo # 确保此项未被注释
📄 配置文件恢复
如果修改配置后程序异常,可删除配置文件恢复默认设置:
rm ~/semi-utils/config.yaml
cp ~/semi-utils/config.yaml.example ~/semi-utils/config.yaml # 恢复示例配置
📄 许可证信息
本项目基于 Apache License 2.0 开源,引用了 exiftool(GPL v1 + Artistic License 2.0)。所有字体文件需遵守各自的开源协议。
项目地址:
https://gitcode.com/gh_mirrors/se/semi-utils
最后更新时间:2025-10-25
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0195
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0124
MiMo-V2.5-Pro-FP4-DFlashMiMo-V2.5-Pro-FP4-DFlash 是驱动 MiMo-V2.5-Pro-UltraSpeed 的底层模型: FP4 量化骨干网络:对 MoE 专家采用 MXFP4 量化,同时保持模型其他部分的更高精度,在几乎无损质量的前提下,显著减小模型体积并降低内存带宽压力。 BF16 DFlash 草稿生成器:用于块扩散推测解码,每次前向传播可生成一整个块的 tokens,并让骨干网络一步完成验证。 两者协同作用,既降低了每参数的位宽,又减少了骨干网络前向传播的次数,而这两者正是万亿参数模型解码过程中的两大主要成本来源。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
AstrBot✨ 易上手的多平台 LLM 聊天机器人及开发框架 ✨ 平台支持 QQ、QQ频道、Telegram、微信、企微、飞书 | OpenAI、DeepSeek、Gemini、硅基流动、月之暗面、Ollama、OneAPI、Dify 等。附带 WebUI。Python05
handy-ollama动手学Ollama,CPU玩转大模型部署,在线阅读地址:https://datawhalechina.github.io/handy-ollama/Jupyter Notebook07




