Hur man sparar och exporterar PSD-dokument i Python
Denna guide visar hur man sparar ett redigerat dokument till en filsökväg, till en öppen ström, och hur man avyttrar en inläst bild efteråt. PsdImage.save är den enda offentliga ingångspunkten för att skriva tillbaka ett dokument — den accepterar antingen en filsökväg eller en redan öppen skrivbar ström. Den lågnivåsektionens skribent som utför den faktiska bytekodningen är en intern implementeringsdetalj, inte något du anropar direkt.
Steg-för-steg-guide
Steg 1: Installera paketet
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:$PYTHONPATHSteg 2: Importera nödvändiga klasser
PsdImage är den enda klass som exemplen i den här guiden behöver:
from aspose_psd_foss.psdimage import PsdImageSteg 3: Spara till en filväg
Läs in ett dokument, gör en redigering och spara sedan tillbaka till en filväg:
image = PsdImage.load("input.psd")
image.layers[0].is_visible = False
image.save("output.psd")Steg 4: Spara till en öppen ström
Att skicka en ström istället för en sökväg lämnar strömmen öppen efter sparandet — du bestämmer när den ska stängas:
with open("output.psd", "wb") as stream:
image.save(stream)Steg 5: Disposera bilden
Frigör de resurser som den inlästa PsdImage håller när du är klar med den:
image.dispose()Vanliga problem och lösningar
RuntimeError: PsdImage has been disposed. vid anrop save. Bilden var redan frigjord (via dispose() eller en with block som avslutades) innan save anropades. Anropa save innan du frigör.
PsdSaveException om en Pascal-stränglängd. Ett strängvärde överstiger 255 byte — se Hantera PSD Core-undantag and Troubleshooting.
Det går inte att tvinga en PSD- eller PSB-behållare vid sparning. Det finns ingen offentlig API för att välja utdataformat för behållaren — en sparning speglar alltid vilket format (is_large_document / is_psb) dokumentet laddades med. Om du behöver ett annat behållarformat finns ingen stödjande konverteringsväg i denna FOSS-build.
Vanliga frågor
Stänger sparning till en ström strömmen efteråt?
Nej — när du skickar en ström till save lämnas strömmen öppen efteråt så att du styr dess livscykel (se Steg 4). Att spara till en filsökväg öppnar och stänger filen internt, i kontrast.
Kan jag anropa den interna sektionens skrivare direkt istället för save?
Nej — sektionnivåskrivaren är en intern implementeringsdetalj som anropas av PsdImage.save. Det finns inget dokumenterat, stödd sätt att skriva ett dokument utanför att anropa save på en PsdImage-instans.