Jak pracovat s Aspose.PSD FOSS Core API v Python

Jak pracovat s Aspose.PSD FOSS Core API v Python

Aspose.PSD FOSS pro Python načítá a kontroluje strukturu dokumentu PSD/PSB prostřednictvím PsdImage, podtřídy Image. Tento článek pokrývá načtení dokumentu, čtení jeho hlavičky a obrazových zdrojů a jeho uložení zpět na disk.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

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

Krok 2: Importujte požadované třídy

PsdImage je vstupní bod používaný v celém tomto průvodci:

from aspose_psd_foss.psdimage import PsdImage

Krok 3: Načíst PSD/PSB dokument

PsdImage.load() otevře dokument z cesty k souboru nebo proudu:

from aspose_psd_foss.psdimage import PsdImage

image = PsdImage.load("input.psd")

Krok 4: Prohlédnout hlavičku dokumentu

PsdImage zobrazuje pole hlavičky načtená z parsovaného dokumentu: width, height, bits_per_channel, color_mode (hodnota ColorModes), a compression (hodnota CompressionMethod):

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}")

Hodnoty ColorModes jsou BITMAP, GRAYSCALE, INDEXED, RGB, CMYK, MULTICHANNEL, DUOTONE a LAB. Hodnoty CompressionMethod jsou RAW, RLE, ZIP_WITHOUT_PREDICTION a ZIP_WITH_PREDICTION.


Krok 5: Přečíst bloky zdrojů obrázků

image_resources vrací parsované ResourceBlock položky dokumentu. Každý blok zobrazuje id, name a size:

for resource in image.image_resources:
    print(f"Resource {resource.id} \"{resource.name}\" - {resource.size} bytes")

image_resources je pouze ke čtení v tomto FOSS buildu — přiřazení do něj vyvolá NotSupportedException (viz Known Limitations v FAQ).


Krok 6: Uložit dokument

Zapište dokument zpět na disk a poté uvolněte prostředky obrázku:

image.save("output.psd")
image.dispose()

Časté problémy a opravy

PsdLoadException při načítání souboru. Vstup není platný PSD/PSB dokument, nebo jeho hlavička neprošla validací. Ověřte, že soubor je skutečný PSD/PSB před načtením.

NotSupportedException při nastavování image_resources or global_layer_resources. Tyto settery nejsou v tomto FOSS buildu podporovány. Považujte image_resources za pouze ke čtení.

Často kladené otázky

Mohu načíst soubor PSD ze streamu místo cesty k souboru?

Ano — PsdImage.load() přijímá buď řetězec cesty k souboru, nebo čitelný stream (io.BytesIO/io.BufferedIOBase).

Zahrnuje image_resources data vrstev?

Ne. image_resources obsahuje bloky zdrojů na úrovni dokumentu (parsované ze sekce zdrojů obrázku PSD). Data na úrovni vrstvy jsou čtena prostřednictvím PsdImage.layers — viz Práce s vrstvami.

Je PsdImage.version verzí formátu souboru PSD?

Ne. PsdImage.version hlásí interní verzi API kompatibilní s Aspose.PSD (aktuálně 6) — není to nijak spojeno s tím, zda načtený soubor je PSD nebo PSB. Jeho nastavení přijímá pouze hodnotu 6; jakákoliv jiná hodnota vyvolá ValueError.

Viz také:

 Čeština