Hogyan töltsünk be egy PSD dokumentumot a Python-ben

Hogyan töltsünk be egy PSD dokumentumot a Python-ben

PsdImage.load az egyetlen nyilvános belépési pont egy PSD/PSB dokumentum megnyitásához — elfogad egy fájl útvonalat vagy egy már megnyitott olvasható adatfolyamot. A belsőleg delegált alacsony szintű szakaszonkénti olvasó nem hívható közvetlenül.

Lépésről lépésre útmutató

1. lépés: A csomag telepítése

pip install aspose-psd-foss

2. lépés: A szükséges osztályok importálása

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

3. lépés: Betöltés fájl útvonalról

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

4. lépés: Betöltés egy adatfolyamból

Az adatfolyamnak nem kell kereshetőnek lennie — a load a teljes tartalmát egy belső pufferré olvassa a feldolgozás előtt:

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

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

Gyakori problémák és megoldások

FileNotFoundError: File not found: .... Az átadott útvonal a load nem mutat egy létező fájlra — load checks os.path.isfile mielőtt megpróbálná megnyitni.

PsdLoadException: Unexpected end of PSD/PSB data while reading the file structure. A forrásfolyam adat hiányában szakadt meg a feldolgozás közben (egy EOFError olvasás közben) — a fájl valószínűleg csonkolt.

PsdLoadException: Failed to read PSD/PSB data from the source stream. I/O hiba történt a folyam önmagából való olvasás közben, becsomagolva és újra dobva, mint egy PsdLoadException.

ArgumentNullException híváskor load. load ezzel hívva None mint a stream argumentum.

Gyakran Ismételt Kérdések

Szükséges-e a stream-et visszaállítani a kezdetére, mielőtt meghívom a load?

Nem — ha a stream kereshető, a load visszaállítja az eredeti pozíciót az olvasás után; ha nem kereshető, a load továbbra is működik, mivel a stream tartalmát belsőleg puffereli a feldolgozás előtt.

Mi a különbség a fent említett két FileNotFoundError/PsdLoadException hiba között?

Egy hiányzó fájlútvonal a standard hibát váltja ki. FileNotFoundError mielőtt bármilyen parsing elkezdődne. A PsdLoadException helyette azt jelenti, hogy egy fájl (vagy stream) megtalálásra és megnyitásra került, de a PSD/PSB adat maga csonkolt, sérült vagy egyébként olvashatatlan, miután a parsing elkezdődött — lásd még Troubleshooting a verzió- és határkapcsolatos PsdLoadException változatok.

Lásd még:

 Magyar