Cum să încărcați un document PSD în Python

Cum să încărcați un document PSD în Python

PsdImage.load este singurul punct de intrare public pentru deschiderea unui document PSD/PSB — acceptă fie o cale de fișier, fie un flux citibil deja deschis. Cititorul de nivel scăzut, secțiune cu secțiune, la care delegă intern, nu este ceva ce apelați direct.

Ghid pas cu pas

Pasul 1: Instalați pachetul

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

Pasul 2: Importați clasele necesare

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

Pasul 3: Încărcați dintr-o cale de fișier

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

Pasul 4: Încărcare dintr-un flux

Un flux nu trebuie să fie căutabil — load citește tot conținutul său într-un buffer intern înainte de parsare:

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

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

Probleme comune și remedieri

FileNotFoundError: File not found: .... Calea transmisă către load nu indică un fișier existent — load checks os.path.isfile înainte de a încerca să îl deschizi.

PsdLoadException: Unexpected end of PSD/PSB data while reading the file structure. Fluxul sursă a rămas fără date în timpul parsării (un EOFError în timpul citirii) — fișierul este probabil trunchiat.

PsdLoadException: Failed to read PSD/PSB data from the source stream. A apărut o eroare I/O în timpul citirii din fluxul însuși, învelită și ridicată din nou ca un PsdLoadException.

ArgumentNullException când se apelează load. load a fost apelat cu None ca argumentul fluxului.

Întrebări frecvente

Trebuie să repoziționez fluxul la început înainte de a apela load?

Nu — dacă fluxul este poziționabil, load îi restaurează poziția inițială după citire; dacă nu este poziționabil, load funcționează în continuare deoarece memorează conținutul fluxului intern înainte de parsare.

Care este diferența dintre cele două FileNotFoundError/PsdLoadException eșecuri de mai sus?

Un path de fișier lipsă ridică standardul FileNotFoundError înainte de a începe orice parsare. A PsdLoadException înseamnă în schimb că un fișier (sau flux) a fost găsit și deschis, dar datele PSD/PSB în sine sunt trunchiate, corupte sau altfel ilizibile odată ce parsarea a început — vezi de asemenea Troubleshooting pentru cele legate de versiune și de limită PsdLoadException variante.

Vezi și:

 Română