Hur man laddar ett PSD-dokument i Python

Hur man laddar ett PSD-dokument i Python

PsdImage.load är den enda offentliga ingångspunkten för att öppna ett PSD/PSB-dokument — den accepterar antingen en filsökväg eller en redan öppen läsbar ström. Den låg-nivå sektion-för-sektion-läsaren som den delegerar till internt är 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 erforderliga klasser

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadException

Steg 3: Ladda från en filsökväg

image = PsdImage.load("input.psd")
print(f"Loaded: {image.width}x{image.height}")
image.dispose()

Steg 4: Läs från en ström

En ström behöver inte vara sökbar — load läser hela dess innehåll till en intern buffert innan parsning:

with open("input.psd", "rb") as stream:
    image = PsdImage.load(stream)

print(f"Loaded from stream: {image.width}x{image.height}")
image.dispose()

Vanliga problem och lösningar

FileNotFoundError: File not found: .... Sökvägen som skickas till load pekar inte på en befintlig fil — load checks os.path.isfile innan du försöker öppna den.

PsdLoadException: Unexpected end of PSD/PSB data while reading the file structure. Källströmmen fick slut på data mitt i parsning (en EOFError vid läsning) — filen är sannolikt trunkerad.

PsdLoadException: Failed to read PSD/PSB data from the source stream. Ett I/O-fel inträffade när data lästes från själva strömmen, inlindat och återkastat som en PsdLoadException.

ArgumentNullException vid anrop av load. load anropades med None som strömargumentet.

Vanliga frågor

Behöver jag söka tillbaka i en ström till dess början innan jag anropar load?

Nej — om strömmen är sökbar återställer load dess ursprungliga position efter läsning; om den inte är sökbar fungerar load ändå eftersom den buffrar strömmens innehåll internt innan den parsas.

Vad är skillnaden mellan de två FileNotFoundError/PsdLoadException-felen ovan?

En saknad filsökväg ger standard FileNotFoundError innan någon parsning startar. En PsdLoadException betyder istället att en fil (eller ström) hittades och öppnades, men PSD/PSB-data själva är trunkerad, korrupt eller på annat sätt oläsbar när parsning påbörjades — se även Troubleshooting för versions- och gränsrelaterade PsdLoadException varianter.

Se även

 Svenska