编写描述符
写入描述符
PsdImage.save 是唯一的公共入口点,用于将文档写回——它接受文件路径或已经打开的可写流。实际进行字节编码的底层节写入器是内部实现细节,不能直接调用。
保存到文件路径或流
from aspose_psd_foss.psdimage import PsdImage
image = PsdImage.load(input_path)
image.save("output.psd")传入流而不是路径会在之后保持流打开——由你决定何时关闭它:
with open("output.psd", "wb") as stream:
image.save(stream)选择容器格式
没有公开的 API 可以在保存时选择输出容器格式——保存时始终会镜像文档加载时使用的格式(is_large_document / is_psb)。在此 FOSS 构建中不支持 PSD 与 PSB 之间的转换路径。
提示与最佳实践
- 在释放图像之前调用
save— 对已释放的PsdImage调用save会引发RuntimeError。 - 由
save调用的内部节级写入器本身并未在文档中记录或受支持;请始终通过PsdImage.save进行调用。
常见问题
| 问题 | 原因 | 修复 |
|---|---|---|
RuntimeError: PsdImage has been disposed. | save 在 dispose() 之后被调用(或在 with 块退出后) | 在释放图像之前调用 save |
PsdSaveException 关于 Pascal 字符串长度 | 字符串值超过 255 字节 | 参见 核心异常 |
FAQ
将数据保存到流后会关闭该流吗?
不会 — 将流传递给 save 后该流保持打开状态,由你自行管理其生命周期。相反,保存到文件路径时,文件会在内部打开并关闭。
我能否从以 PSD 加载的文档生成 PSB 文件?
不会 — 没有公开的 API 可以在保存时覆盖容器格式;它始终与已加载文档的原始格式保持一致。
API Reference 摘要
| 类/方法 | 描述 |
|---|---|
PsdImage.save(file_path) / PsdImage.save(stream) | 保存文档 |