水印添加
当用户需要给图片添加水印时,按以下步骤执行:
- 确认输入是单张图片、图片目录,或包含路径的批量列表。
- 确认水印内容:文字、Logo 图片,或两者同时使用。
- 如果用户没有指定参数,使用默认值:右下角、白色、透明度 0.35、字号 32、边距 32、黑色 2px 描边、不覆盖原图。
- 根据用户要求设置位置、大小、方向、字体、颜色、透明度、缩放、描边、阴影和输出格式。
- 调用
scripts/watermark.py执行处理,将结果写入独立输出目录。 - 向用户报告生成的文件路径;不要覆盖原图,除非用户明确要求覆盖。
执行前检查
- 输入格式支持 PNG、JPG/JPEG、WebP、BMP、TIFF。
- 文字水印建议显式指定
--font-path来保证中文字体正确显示,例如 Windows 的C:\Windows\Fonts\msyh.ttc。 --opacity范围是 0 到 1;--quality主要对 JPEG/WebP 生效。- 输入目录模式会递归查找图片文件。
常用命令
# 单张文字水印
python scripts/watermark.py --input photo.jpg --text "内部资料"
# 自定义九宫格位置、颜色、透明度和旋转
python scripts/watermark.py --input photo.jpg --text "CONFIDENTIAL" \
--position top-center --font-size 40 --color "#FF0000" \
--opacity 0.5 --rotation -15 --output-dir out
# Logo 水印
python scripts/watermark.py --input photo.jpg --image logo.png \
--position bottom-right --scale 0.5 --opacity 0.6
# 批量处理目录
python scripts/watermark.py --input-dir ./photos \
--text "内部资料" --position bottom-right --output-dir ./watermarked
# 使用批量列表
python scripts/watermark.py --batch-list paths.txt --text "版权所有"
# 自然语言键值参数
python scripts/watermark.py --input photo.jpg \
--from-text "text='(c) 2026' position=middle-right opacity=0.5 rotation=-10"
位置
支持九宫格:top-left、top-center、top-right、middle-left、center、
middle-right、bottom-left、bottom-center、bottom-right;也支持自定义
像素坐标(例如 150,200)、tiled 平铺和 diagonal 对角线重复。
参数优先级
--from-text 中明确写出的字段 > 普通 CLI 参数 > 默认值。CLI 输入模式
--input、--input-dir、--batch-list 三选一。
交付规则
- 默认输出到
out/,文件名追加_wm,不覆盖已有文件。 - 处理完成后只向用户返回生成文件路径和简短结果,不暴露内部实现细节。
- 执行失败时报告具体输入和错误原因,不静默丢失文件。
详细字段和示例见 references/parameters.md 与
references/examples.md。