Giriş

PsdImage.layers, bir PSD veya PSB belgesindeki her katmanı Layer nesnelerinin listesi olarak döndürür. Bu gönderi özellikle bir Layer‘nin ortaya çıkardıklarına bakar: geometrisi ve görsel durumu, karıştırma modu ve maske bayrağı sayımları, ve bir katmanın kanallarını, maskesini ve karıştırma aralıklarını tanımlayan meta veri sınıfları.


Neler Dahildir

Katman Sınıfı

Her Layer, bir ad (name), bir sınırlayıcı Rectangle (bounds, türetilmiş width/height/top/left/bottom/right ile), görünürlük ve birleştirme durumu (is_visible, opacity, clipping, blend_mode_key), ve bir kanal sayısı (channels_count) taşır. name, is_visible, opacity, clipping, blend_mode_key ve dört sınır kenarı, PsdImage.save() ile değiştirilebilir ve geri yazılabilir.

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

Karıştırma Modları ve Maske Bayrakları

blend_mode_key, bir BlendMode enum değeridir — kütüphane 29 standart PSD karıştırma modunu tanımlar (NORMAL, MULTIPLY, SCREEN, OVERLAY, DARKEN, LIGHTEN, COLORDODGE, COLORBURN, HARDLIGHT, SOFTLIGHT, DIFFERENCE, EXCLUSION, HUE, SATURATION, COLOR, LUMINOSITY ve diğerleri). Ayrı bir LayerMaskFlags bayrak enumu (NONE, RELATIVE_TO_LAYER, DISABLED, INVERTED_WHEN_BLENDING, USER_MASK_FROM_RENDERING_OTHER_DATA, USER_OR_VECTOR_MASKS_HAVE_PARAMETERS) bir katmanın bir maskesi olduğunda maske renderleme davranışını açıklar.

Kanal ve Maske Meta Verileri

Layer.channel_information her kanalın kimliğini, sıkıştırma yöntemini ve bayt uzunluğunu tanımlayan ChannelInformation nesnelerinin bir listesini döndürür. Layer.layer_mask_data (mevcut olduğunda bir LayerMaskDataShort) bir katman maskesinin sınırlarını ve bayraklarını açıklar; Layer.layer_blending_ranges_data birleşik ve kanal başına karıştırma aralıklarını ortaya çıkarır. Bu üç özellik de bu FOSS yapısında yalnızca okunabilir — çağrıldıklarında ayarlayıcıları NotSupportedException hatası yükseltir, normal özellikler gibi görünseler de.

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

Hızlı Başlangıç

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

Desteklenen Biçimler

BiçimUzantıOkuYaz
PSDpsd✓✓
PSBpsb✓✓

Açık Kaynak & Lisanslama

Aspose.PSD FOSS, Python için MIT lisansına sahiptir ve telif ücreti olmadan ticari ürünlerde kullanılabilir, değerlendirme filigranı veya kullanım sınırı yoktur.

Kütüphanenin üçüncü taraf yerel bağımlılığı yoktur — yalnızca çalışma zamanında Python standart kütüphanesi gerekir.


Başlarken

İlgili Kaynaklar