Напишіть дескриптори
Запис дескрипторів
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перед вивільненням зображення —saveна вивільненомуPsdImageвикликаєRuntimeError. - Внутрішній записувач рівня розділу, викликаний
save, не є задокументованою чи підтримуваною точкою входу самостійно; завжди використовуйтеPsdImage.save.
Типові проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
RuntimeError: PsdImage has been disposed. | save було викликано після dispose() (або після виходу з блоку with) | Викликайте save перед знищенням зображення |
PsdSaveException про довжину Pascal-рядка | Значення рядка перевищує 255 байтів | Дивитися Основні виключення |
FAQ
Чи закриває збереження у потік потік після завершення?
Ні — передача потоку до save залишає його відкритим після цього, тому ви керуєте його життєвим циклом. Навпаки, збереження за шляхом до файлу відкриває і закриває файл всередині.
Чи можу я створити файл PSB з документа, завантаженого як PSD?
Ні — немає публічного API для перевизначення формату контейнера під час збереження; він завжди віддзеркалює формат завантаженого документа.
API Reference Резюме
| Клас/Метод | Опис |
|---|---|
PsdImage.save(file_path) / PsdImage.save(stream) | Зберігає документ |