Hogyan mentse és exportálja a PSD dokumentumokat a Python
Ez az útmutató bemutatja, hogyan menthet egy szerkesztett dokumentumot egy fájlútra, egy nyitott adatfolyamra, és hogyan szabadíthatja fel a betöltött képet később. PsdImage.save az egyetlen nyilvános belépési pont a dokumentum visszaírásához – elfogadja vagy a fájlútvonalat, vagy egy már nyitott írható adatfolyamot. Az alacsony szintű szekcióíró, amely a tényleges bájt kódolást végzi, egy belső megvalósítási részlet, nem pedig valami, amit közvetlenül hívna.
Lépésről-lépésre útmutató
1. lépés: A csomag telepítése
pip install aspose-psd-foss2. lépés: A szükséges osztályok importálása
PsdImage az egyetlen osztály, amire az útmutató példái szükségük van:
from aspose_psd_foss.psdimage import PsdImage3. lépés: Mentés fájl útvonalra
Tölts be egy dokumentumot, végezz módosítást, majd mentsd vissza egy fájl útvonalra:
image = PsdImage.load("input.psd")
image.layers[0].is_visible = False
image.save("output.psd")4. lépés: Mentés nyitott adatfolyamra
Ha egy adatfolyamot adsz meg útvonal helyett, a mentés után az adatfolyam nyitva marad — te irányítod, mikor zárd le:
with open("output.psd", "wb") as stream:
image.save(stream)5. lépés: Kép felszabadítása
Szabadítsd fel a betöltött PsdImage által foglalt erőforrásokat, miután befejezted a használatát:
image.dispose()Gyakori problémák és megoldások
RuntimeError: PsdImage has been disposed. híváskor save. A kép már felszabadítva volt (via dispose() vagy egy with blokk, amely kilépett) előtt save hívásra került. Hívja save a felszabadítás előtt.
PsdSaveException a Pascal karakterlánc hosszáról. A karakterlánc értéke meghaladja a 255 bájtot — lásd PSD Core kivételek kezelése and Troubleshooting.
Nincs mód arra, hogy a mentéskor kényszerítsünk PSD vagy PSB tárolót. Nincs nyilvános API a kimeneti tárolóformátum kiválasztásához — a mentés mindig tükrözi azt a formátumot (is_large_document / is_psb) amellyel a dokumentum betöltődött. Ha más tárolóformátumra van szükség, ebben a FOSS buildben nincs támogatott konverziós útvonal.
Gyakran Ismételt Kérdések
Bezárja a streamet a mentés után?
Nem — amikor egy streamet ad át a save-nek, a stream nyitva marad, így Ön vezérli annak életciklusát (lásd a 4. lépést). Ezzel szemben, egy fájlútra mentés esetén a fájl belsőleg megnyílik és bezáródik.
Hívhatom közvetlenül a belső szekcióírót a save helyett?
Nem — a szekciószintű író egy belső megvalósítási részlet, amelyet a PsdImage.save hív meg. Nincs dokumentált, támogatott mód egy dokumentum írására a save hívása PsdImage példányon kívül.