介绍
Aspose.PSD FOSS 用于 Python 是一个全新的开源库,用于在 Python 代码中处理 PSD 和 PSB(Photoshop 大文档)文件。它在 MIT 许可证下发布,没有任何第三方本机依赖,仅在运行时需要 Python 标准库。该包的导入名称为 aspose_psd_foss。
该库围绕 PsdImage 类组织,该类扩展了抽象的 Image 基类,以及 Layer 类。Image.load() / PsdImage.load() 从文件路径或流加载文档,公开头部信息(width、height、color_mode、version、compression)以及解析后的 layers 集合;PsdImage.save() 将文档写回文件或流。两个类都支持 with 语句以实现自动清理。每个 Layer 都暴露其自身的元数据——name、bounds、is_visible、opacity、clipping、blend_mode_key,以及通道/蒙版信息——其中一部分属性可以就地修改并保存回文件。
此版本面向需要在 Python 代码库中检查或进行有限元数据编辑的开发者,且无需商业许可证——例如报告图层结构的资产管线工具、在交付前重命名或切换图层可见性的构建脚本,或需要读取 PSD 头部和图层数据而无需完整渲染引擎的测试固件。该库不渲染像素数据,也不将 PSD/PSB 转换为其他图像格式——它是针对 PSD/PSB 容器格式的元数据聚焦读写器。
包含内容
文档检查
PsdImage.load() 将 PSD 或 PSB 文件的头部解析为类型化属性——width、height、bits_per_channel、color_mode、version、compression、size 和 is_flatten——而不解码像素数据。
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Layers: {image.layer_count}, Compression: {image.compression}")
图层元数据
在 PsdImage.layers 中的每个条目都是一个 Layer,它公开自己的边界、可见性、不透明度、剪裁和混合模式元数据。
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
for layer in image.layers:
print(f"{layer.name}: {layer.bounds}, Visible={layer.is_visible}, Opacity={layer.opacity}")
支持的元数据编辑
可以就地更改图层属性的子集,并使用 PsdImage.save() 写回:名称、可见性、不透明度、剪裁、混合模式键以及四个边界边。
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode
with PsdImage.load("input.psd") as image:
layer = image.layers[0]
layer.name = f"{layer.name} (edited)"
layer.is_visible = not layer.is_visible
layer.opacity = 128
layer.blend_mode_key = BlendMode.MULTIPLY
image.save("output.psd")
快速入门
安装该软件包,然后加载 PSD 或 PSB 文件,检查其图层,并将其保存回去:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATHfrom aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}, Layers: {image.layer_count}")
for layer in image.layers:
print(f" {layer.name}: {layer.bounds}")
image.save("output.psd")
支持的格式
| 格式 | 扩展名 | 读取 | 写入 |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
开源与许可
Aspose.PSD FOSS for Python 是 MIT 许可证,可在商业产品中使用,无需版税,且没有评估水印或使用限制。
该库没有任何第三方本机依赖——运行时仅需要 Python 标准库。