You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python访问不同目录下的PNG文件并完成合并?

跨目录PNG合并解决方案

核心思路是通过脚本所在绝对路径定位目标文件,避免依赖运行时工作目录导致的路径找不到问题,可参考以下实现:

import os
from PIL import Image

# 获取当前main.py脚本的绝对目录,不受运行时工作目录影响
SCRIPT_ROOT = os.path.dirname(os.path.abspath(__file__))

# 配置PNG文件所在目录,支持两种写法:
# 1. 绝对路径(直接写全路径,和脚本位置无关),示例:PNG_FOLDER = r"C:\design\layers" 或者 PNG_FOLDER = "/home/user/layers"
# 2. 相对于脚本的相对路径,示例:脚本上层目录的layers文件夹:
PNG_FOLDER = os.path.join(SCRIPT_ROOT, "..", "your_layers_folder")

# 拼接得到完整的文件路径,自动适配不同系统的路径分隔符
layer1 = Image.open(os.path.join(PNG_FOLDER, "layer1.png")).convert("RGBA")
layer2 = Image.open(os.path.join(PNG_FOLDER, "layer2.png")).convert("RGBA")

# 合并后可保存到任意指定路径,示例保存到脚本同级的output目录
output_path = os.path.join(SCRIPT_ROOT, "output", "merged.png")
os.makedirs(os.path.dirname(output_path), exist_ok=True)
Image.alpha_composite(layer1, layer2).save(output_path)

注意事项

  • 所有路径拼接统一使用os.path.join(),自动适配Windows、Linux、macOS的路径分隔符,避免手动写/或\出现跨平台兼容问题
  • 调用Image.alpha_composite前需保证两张输入图像的分辨率完全一致,否则会触发尺寸不匹配异常
  • os.makedirs的exist_ok=True参数可自动创建不存在的父目录,无需手动提前创建输出文件夹

内容的提问来源于stack exchange,提问作者biscuitbreaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:18:03