批量照片水印终极指南:3分钟让相机参数和品牌Logo自动上镜
【免费下载链接】semi-utils一个批量添加相机机型和拍摄参数的工具,后续「可能」添加其他功能。项目地址: https://gitcode.com/gh_mirrors/se/semi-utils
深夜整理完一整个婚礼跟拍文件夹,200多张照片,你抱着图库软件一张张敲参数、拖水印、存导出,等到窗外天都亮了。如果你也有过这种"手都要废了"的经历,那你和semi-utils这类的批量照片水印工具,只差一个认识的机会。
它是开源的、免费的、跨平台的,专治"给照片批量添加相机机型和拍摄参数"这种重复劳动。你只要把照片丢进文件夹,它就能自动读出每张照片的 EXIF 元数据,匹配对应相机品牌的 Logo,再套上你选好的模板,一键输出带水印的成品。下面这份教程,从零开始带你跑通全流程。
一、先尝鲜:5分钟让第一批带水印的照片出炉
先动手,再讲道理。整个过程只要走完下面五步。
- 获取项目代码:在终端执行
git clone https://gitcode.com/gh_mirrors/se/semi-utils cd semi-utils - 运行初始化脚本:执行
./init.sh,它会自动帮你创建 Python 虚拟环境、装好依赖并启动服务。Windows 用户可以直接双击build_win_pkg.spec打出的main.exe;macOS 用户运行根目录的"macOS启动脚本.applescript"。 - 放照片:在项目根目录新建
input文件夹,把要处理的 JPEG、PNG 甚至 HEIC 照片都丢进去。 - 打开操作台:浏览器访问
http://localhost:15050,一个简洁的网页界面会自动打开。 - 点处理:在界面上勾选照片、选一套模板,点击开始。进度条会实时显示当前处理到哪一张,完成后去
output文件夹收货。
用默认模板处理后,照片左上角是相机型号,下方是镜头信息,右侧是焦距、光圈、快门、ISO 和拍摄时间,右下角还有自动匹配的尼康 Logo,一整条 EXIF 信息全自动上镜。
二、为什么你该告别手动水印:四个坑,一个工具全填平
手动加水印最大的问题不是累,而是"错"。
- 参数抄错:一张张手敲光圈快门,打错一个数字,整组图的数据就废了;
- 格式不统一:每张图水印位置、字体、颜色全靠手感,发出去像不同人修的;
- 速度太慢:一百张图一个下午,时间全耗在重复动作上;
- 品牌感弱:简陋的白字水印压不住画面,作品气质直接掉档。
semi-utils 的解法是把"人肉劳动"变成"配置驱动"。它调用 exiftool 从照片文件本身读取元数据——相机型号、镜头、焦距、光圈、快门、ISO、拍摄时间一应俱全,不存在手抄出错的空间。模板决定排版,同样的参数在每张图上长得一模一样,逼死强迫症的不统一问题也消失了。
品牌 Logo 自动匹配,无需手动找图
工具内置了尼康、佳能、索尼、富士、徕卡、哈苏、松下、宾得、理光、奥林巴斯、大疆、苹果等主流品牌 Logo 库。核心逻辑很简单:从 EXIF 的Make字段拿到相机品牌后,在config/logos/目录里自动找同名的图片文件。
图中是config/logos/目录里的尼康 Logo 素材。识别到尼康相机时,工具会自动把它"贴"到水印里,佳能、索尼同理,全程不用你手动选图。
文件夹级批量处理,1000张也只是几分钟的事
工具用多线程并发处理照片,界面能实时看到每一张的处理进度和成功/失败状态。一次勾选整个文件夹,剩下的交给它跑,你去喝杯咖啡,回来就全部完工。
三、7套模板怎么选:一张图一个场景,照着抄就行
模板是 semi-utils 的灵魂,所有模板都在config/templates/目录下,每个都是 JSON 格式、基于 Jinja2 渲染。第一次用不知道选哪个,直接按下面这个场景对照表来。
| 场景 | 推荐模板 | 特点 |
|---|---|---|
| 社交媒体分享 | 标准水印2 | 圆角+阴影+留白,发朋友圈小红书都好看 |
| 专业作品集 | 标准水印 | EXIF 参数最全,型号、镜头、参数、时间全覆盖 |
| 尼康用户 | 尼康专用背景模糊 | 型号里的红色"Z"高亮,胶片质感拉满 |
| 低调出片 | 右下角参数 | 只有一行参数,不打扰画面 |
| 旅行记录 | 文件夹名+右下角参数 | 橙色文字显示文件夹名和拍摄时间 |
| 品牌宣传 | logo居中 | 品牌 Logo 放正中间,四周可自定义文字 |
| 干净居中 | 背景模糊 | 型号+参数垂直居中,背景虚化衬托 |
这张是"标准水印2"的效果:在经典 EXIF 水印基础上加了圆角、阴影和留白,信息完整又适合直接发社交平台,是新手入门首选的稳妥模板。
"右下角参数"模板走的是极简路线,焦距、光圈、快门、ISO 一行带过,右下角低调排列,适合不想破坏画面构图的风光片和街拍。
"尼康专用背景模糊"模板把机身型号里的红色"Z"单独放大高亮,配合背景虚化,一眼就能看出是尼康 Z 系列的片子,风格辨识度极高。
"logo居中"模板把品牌 Logo 放到画面正中,四周文字内容可以在模板里自由定义,是做品牌宣传图的好帮手。
四、进阶玩法:改一个配置文件,水印就按你的规矩来
不想只用水印自带模板?两个入口随便挑。
入口一:改config/config.ini
核心配置都在这个文件里,用记事本或 VSCode 打开就能改:
[DEFAULT] input_folder = ./input output_folder = ./output quality = 60 supported_file_suffixes = .jpeg,.jpg,.png,.heic [render] template_name = 标准水印input_folder/output_folder:输入输出目录,改完就不用每次搬照片;quality:输出图片质量,1 到 100,数字越小文件越小,批量处理大量照片时调到 50 左右能明显提速;template_name:默认套用的模板,换模板直接改这个名字,比在网页里每次手选省事。
入口二:复制模板自己改
想打造专属水印,最省力的办法是复制现有模板再改。比如:
- 复制
config/templates/标准水印.json,重命名为我的水印.json; - 打开这个文件,调整文字的颜色、字体文件、位置偏移量,或者把
auto_logo换成指定的品牌图片路径; - 在网页界面的模板列表里就能看到"我的水印",选中即可使用。
改完记得先在少量照片上试跑,确认排版符合预期再批量处理。模板渲染相关的核心逻辑在core/jinja2renders.py,想深挖自定义能力可以从这里入手。
五、新手最容易踩的四个坑
Q1:水印里相机型号显示不正确怎么办?先检查照片 EXIF 是否完整。有些照片经过了截图、压缩或软件导出,元数据被剥掉了。可以用exiftool命令直接查看单张照片的信息,确认Make和CameraModelName字段存在。少数相机品牌有特殊的型号命名,需要检查config/logos/里是否有对应品牌的 Logo 文件。
Q2:处理速度太慢,有什么提速办法?三个方向:一是把quality调低一点,出图更快文件更小;二是少用带背景模糊的模板,模糊运算比较吃 CPU;三是分批处理,一次别超过 200 张,顺便关掉后台跑着的视频剪辑、浏览器大标签页。
Q3:HEIC 格式的照片能处理吗?能。项目默认支持.jpeg、.jpg、.png、.heic四种格式,遇到 HEIC 会自动转成 JPEG 再处理。如果还有别的格式需求,可以在supported_file_suffixes里手动追加。
Q4:输出文件被跳过了,是出 bug 了吗?大概率不是。当override_existed为False时,工具会自动跳过output目录里已经存在的同名文件,避免重复劳动。想重新生成,要么删掉旧文件,要么把这个配置改成True。
六、下一步,去跑你的第一批图
- 先小后大:挑 10 张不同场景的照片试跑,确认水印效果和参数正确再铺开;
- 多试试模板:把 7 套模板各出一张对比图,挑出最适合你作品风格的那套设为默认;
- 顺手自定义:从复制模板开始,做出带你自己署名或品牌标识的专属水印;
- 备份是底线:处理前记得复制一份原始照片,批量任务出任何意外都有退路。
批量照片水印这件事,本该是"一次配置、长期受益",而不是一次次重复劳动。花三分钟读完这篇教程,再用三分钟跑通第一组照片,你省下的将是以后每个深夜的手工时间。照片是拿来分享的,时间该留给创作本身。
温馨提示:首次使用建议先处理少量照片测试效果,处理前记得备份原始照片,好习惯能让你的图库永远有后悔药可吃。
【免费下载链接】semi-utils一个批量添加相机机型和拍摄参数的工具,后续「可能」添加其他功能。项目地址: https://gitcode.com/gh_mirrors/se/semi-utils
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考