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:$PYTHONPATHSteg 2: Importera erforderliga klasser
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadExceptionSteg 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.