Hogyan dolgozzunk a Aspose.PSD FOSS Core API -vel Python ben

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:$PYTHONPATH

2.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 PsdImage

3.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.

Lásd még:

 Magyar