Hogyan dolgozzunk a Aspose.PSD FOSS Core API -vel Python ben
Aspose.PSD FOSS a Python számára betölti és ellenőrzi a PSD/PSB dokumentumstruktúrát a PsdImage segítségével, amely a Image alosztálya. Ez a cikk bemutatja a dokumentum betöltését, a fejléc és a kép erőforrások olvasását, valamint a vissza lemezre mentését.
Lépésről lépésre útmutató
1.lépés: A csomag telepítése
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:$PYTHONPATH2.lépés: A szükséges osztályok importálása
PsdImage az a belépési pont, amelyet ebben az útmutatóban mindenhol használunk:
from aspose_psd_foss.psdimage import PsdImage3.lépés: Töltsön be egy PSD/PSB dokumentumot
PsdImage.load() egy dokumentumot nyit meg fájlútról vagy egy adatfolyamból:
from aspose_psd_foss.psdimage import PsdImage
image = PsdImage.load("input.psd")4.lépés: Ellenőrizze a dokumentumfejlécet
PsdImage a feldolgozott dokumentumból olvasott fejlécmezőket teszi elérhetővé: width, height, bits_per_channel, color_mode (egy ColorModes érték), és compression (egy CompressionMethod érték):
print(f"{image.width}x{image.height}, {image.bits_per_channel} bpc")
print(f"Color mode: {image.color_mode}") # e.g. ColorModes.RGB
print(f"Compression: {image.compression}") # e.g. CompressionMethod.RLE
print(f"Flattened: {image.is_flatten}")ColorModes értékek: BITMAP, GRAYSCALE, INDEXED, RGB, CMYK, MULTICHANNEL, DUOTONE és LAB. CompressionMethod értékek: RAW, RLE, ZIP_WITHOUT_PREDICTION és ZIP_WITH_PREDICTION.
5.lépés: Olvassa be a kép erőforrás blokkokat
image_resources visszaadja a dokumentum feldolgozott ResourceBlock bejegyzéseit. Minden blokk a id, name és size mezőket teszi elérhetővé:
for resource in image.image_resources:
print(f"Resource {resource.id} \"{resource.name}\" - {resource.size} bytes")image_resources csak olvasható ebben a FOSS buildben — a hozzárendelés hibát eredményez NotSupportedException (lásd a Known Limitations részt a FAQ).
6. lépés: Dokumentum mentése
Írja vissza a dokumentumot a lemezre, majd szabadítsa fel a kép erőforrásait:
image.save("output.psd")
image.dispose()Gyakori problémák és javítások
PsdLoadException fájl betöltésekor. A bemenet nem érvényes PSD/PSB dokumentum, vagy a fejléc ellenőrzése sikertelen. Ellenőrizze, hogy a fájl valódi PSD/PSB fájl-e a betöltés előtt.
NotSupportedException beállításkor image_resources or global_layer_resources. Ezeket a beállítókat nem támogatja ez a FOSS build. Kezelje image_resources olvasásra csak.
Gyakran feltett kérdések
Betölthetek PSD-fájlt egy adatfolyamból a fájlútvonal helyett?
Igen — PsdImage.load() elfogad egy fájlútvonal karakterláncot vagy egy olvasható adatfolyamot (io.BytesIO/io.BufferedIOBase).
Tartalmazza a image_resources a rétegadatokat?
Nem. image_resources tartalmaz dokumentumszintű erőforrás blokkokat (a PSD kép erőforrások szakaszából kiolvasva). A rétegszintű adatokat a következőn keresztül olvassák PsdImage.layers — lásd Rétegekkel dolgozás.
A PsdImage.version a PSD fájlformátum verziója?
Nem. A PsdImage.version egy belső, Aspose.PSD-kompatibilis API verziószámot jelent (jelenleg 6) — ez nem függ attól, hogy a betöltött fájl PSD vagy PSB. A beállítója csak a 6 értéket fogadja el; bármely más érték ValueError-t vált ki.