修复./目录/.格式解析,增加README文档,提高水印透明度

This commit is contained in:
ypshidifu
2026-09-18 22:48:31 +08:00
parent 1bbc4d6e4f
commit 92a18299a3
+23 -1
View File
@@ -44,6 +44,7 @@ def _parse_output_spec(output_spec, input_path):
- "../output.png" -> 输出到脚本上级目录
- "/absolute/path.png" -> 绝对路径
- "output.png" -> 输出到脚本所在目录
- "./1/.bmp" -> 输出到 ./1/ 目录,转换为 bmp 格式
"""
if not output_spec:
# 无格式指定,保持原格式和原目录
@@ -87,7 +88,28 @@ def _parse_output_spec(output_spec, input_path):
output_path = os.path.join(input_dir, f"{name_no_ext}_watermarked{ext}")
return _normalize_path(output_path), ext
# 路径处理
# 特殊处理:./目录/.格式 的语法(如 ./1/.bmp)
# 格式:./[目录]/.[扩展名]
# 例如:./1/.bmp -> 输出到 ./1/ 目录,格式为 bmp
if output_spec.startswith('./') and '/.' in output_spec:
# 提取目录和扩展名
# output_spec 如 ./1/.bmp
parts = output_spec.split('/.', 1)
if len(parts) == 2:
dir_part = parts[0] # ./1
ext = '.' + parts[1] # .bmp
if ext not in SUPPORTED_OUTPUT_EXTENSIONS:
raise ValueError(f"不支持的输出格式: {ext},支持的格式: {', '.join(sorted(SUPPORTED_OUTPUT_EXTENSIONS))}")
# 规范化目录路径
dir_part = _normalize_path(dir_part)
# 获取原文件名(不含扩展名)
base_name = os.path.basename(input_path)
name_no_ext = os.path.splitext(base_name)[0]
# 构建输出路径
output_path = os.path.join(WORK_DIR, dir_part, f"{name_no_ext}{ext}")
return _normalize_path(output_path), ext
# 普通路径处理
output_spec = _normalize_path(output_spec)
# 分离目录和文件名