Bevezetés

PsdImage.layers minden réteget visszaad egy PSD vagy PSB dokumentumban, mint egy Layer objektumok listáját. Ez a bejegyzés kifejezetten arról szól, hogy egy Layer mit tesz láthatóvá: annak geometriáját és vizuális állapotát, a keverési mód és maszk jelző enumerációkat, valamint a metaadat osztályokat, amelyek leírják egy réteg csatornáit, maszkját és keverési tartományait.


Mi van benne

A Layer osztály

Minden Layer egy nevet tartalmaz (name), egy határoló Rectangle-t (bounds, a leszármazott width/height/top/left/bottom/right értékekkel), láthatósági és kompozíciós állapotot (is_visible, opacity, clipping, blend_mode_key), valamint egy csatornaszámot (channels_count). name, is_visible, opacity, clipping, blend_mode_key, és a négy határél is módosítható és visszaírható a PsdImage.save() segítségével.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    for layer in image.layers:
        print(f"{layer.name}: {layer.bounds}, "
              f"Visible={layer.is_visible}, Opacity={layer.opacity}, "
              f"BlendMode={layer.blend_mode_key}")

Keverési módok és maszk jelzők

blend_mode_key egy BlendMode enum érték — a könyvtár 29 szabványos PSD keverési módot definiál (NORMAL, MULTIPLY, SCREEN, OVERLAY, DARKEN, LIGHTEN, COLORDODGE, COLORBURN, HARDLIGHT, SOFTLIGHT, DIFFERENCE, EXCLUSION, HUE, SATURATION, COLOR, LUMINOSITY, és egyebek). Egy különálló LayerMaskFlags jelző enum (NONE, RELATIVE_TO_LAYER, DISABLED, INVERTED_WHEN_BLENDING, USER_MASK_FROM_RENDERING_OTHER_DATA, USER_OR_VECTOR_MASKS_HAVE_PARAMETERS) írja le a maszk renderelési viselkedését, ha egy rétegnek van maszkja.

Csatorna és maszk metaadatok

Layer.channel_information egy listát ad vissza ChannelInformation objektumokról, amelyek leírják minden csatorna azonosítóját, tömörítési módszerét és bájt hosszát. Layer.layer_mask_data (egy LayerMaskDataShort, ha jelen van) leírja a rétegmaszk határait és jelzőit; Layer.layer_blending_ranges_data a kompozit és csatornánkénti keverési tartományokat teszi elérhetővé. Ezen három tulajdonság csak olvasható ebben a FOSS buildben — a beállítóik NotSupportedException dobnak, ha meghívják, még akkor is, ha normál tulajdonságokként jelennek meg.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    layer = image.layers[0]
    for channel in layer.channel_information:
        print(f"Channel {channel.ChannelID}: {channel.compression_method}, {channel.length} bytes")

    if layer.has_mask_data:
        mask = layer.layer_mask_data
        print(f"Mask bounds: {mask.mask_rectangle}, flags: {mask.flags}")

Gyors kezdés

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
from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    visible_layers = [layer for layer in image.layers if layer.is_visible]
    for layer in visible_layers:
        print(f"{layer.name}: Opacity={layer.opacity}, BlendMode={layer.blend_mode_key}")

Támogatott formátumok

FormátumKiterjesztésOlvasásÍrás
PSDpsd✓✓
PSBpsb✓✓

Nyílt forráskód & Licencelés

Aspose.PSD FOSS a Python számára MIT licenc alatt áll, és kereskedelmi termékekben használható jogdíj nélkül, értékelési vízjel vagy használati korlát nélkül.

A könyvtárnak nincsenek harmadik féltől származó natív függőségei — csak a Python szabványos könyvtárára van szükség futásidőben.


Első lépések

Kapcsolódó erőforrások