Zapsat popisovače
Zapisovat deskriptory
PsdImage.save je jediný veřejný vstupní bod pro zápis dokumentu zpět — přijímá buď cestu k souboru, nebo již otevřený zapisovatelný stream. Nízkourovňový zapisovač sekcí, který provádí skutečné kódování bajtů, je interní implementační detail, ne něco, co byste volali přímo.
Ukládání do cesty souboru nebo streamu
from aspose_psd_foss.psdimage import PsdImage
image = PsdImage.load(input_path)
image.save("output.psd")Předání streamu místo cesty ponechá stream po operaci otevřený — vy kontrolujete, kdy jej zavřít:
with open("output.psd", "wb") as stream:
image.save(stream)Volba kontejnerového formátu
Neexistuje veřejný API pro výběr výstupního kontejnerového formátu při ukládání — ukládání vždy odráží formát (is_large_document / is_psb), ve kterém byl dokument načten. V této FOSS verzi neexistuje podpořená cesta konverze mezi PSD a PSB.
Tipy a osvědčené postupy
- Zavolejte
savepřed uvolněním obrazu —savena uvolněnémPsdImagevyvoláRuntimeError. - Interní zapisovač na úrovni sekce, který volá
save, není samostatně dokumentovaným ani podporovaným vstupním bodem; vždy jej používejte přesPsdImage.save.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
RuntimeError: PsdImage has been disposed. | save byl volán po dispose() (nebo po ukončení bloku with) | Zavolejte save před uvolněním obrázku |
PsdSaveException o délce Pascalova řetězce | Řetězcová hodnota přesahuje 255 bajtů | Viz Základní výjimky |
FAQ
Zavře se po uložení do proudu (streamu) tento stream?
Ne — předání streamu do save jej po operaci nechává otevřený, takže máte kontrolu nad jeho životním cyklem. Uložení na souborovou cestu naopak otevře a zavře soubor interně.
Mohu vytvořit soubor PSB z dokumentu načteného jako PSD?
Ne — neexistuje žádné veřejné API pro přepsání kontejnerového formátu při ukládání; vždy odráží formát načteného dokumentu.
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
PsdImage.save(file_path) / PsdImage.save(stream) | Uloží dokument |