Hur man sparar och exporterar PSD-dokument i Python

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:$PYTHONPATH

Steg 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 PsdImage

Steg 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.

Se även

 Svenska