Giớ̂i thiệ̂u

PsdImage.layers trả về mội lồp trong tài liệ̂u PSD hoặ̂c PSB dướ̂i dậng danh sách các đố̂i tượng Layer. Bài viế̂t này tập trung vào những gì mộ̂t Layer hiển thị: hình hộc và trạng thái hình ảnh của nó, các liệ̂t kê chế độ hoà trồn và că̂́ flag mật nà, và các lớp siêu dẫ̃ liệ̂u mô tả các kền, mật nà và phạm vi hoà trồn của lồp.


Những gì được bao gồm

Lớp Layer

Mỗi Layer có một tên (name), một Rectangle giới hạn (bounds, với các giá trị suy xuất width/height/top/left/bottom/right), trạng thái hiển thị và hợp thành (is_visible, opacity, clipping, blend_mode_key), và một số lượng kền (channels_count). name, is_visible, opacity, clipping, blend_mode_key, và bốn cạnh giới hạn đều có thể được thay đổi và ghi lại bằng PsdImage.save().

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

Chế độ Hòa trồn và Cấ Flag Mật Nà

blend_mode_key là một giá trị enum BlendMode — thư vị̣̣n định nghĩa 29 chế độ hòa trồn PSD chuẩn (NORMAL, MULTIPLY, SCREEN, OVERLAY, DARKEN, LIGHTEN, COLORDODGE, COLORBURN, HARDLIGHT, SOFTLIGHT, DIFFERENCE, EXCLUSION, HUE, SATURATION, COLOR, LUMINOSITY, và các chế độ khác). Một enum cấ LayerMaskFlags riêng biệ̂t (NONE, RELATIVE_TO_LAYER, DISABLED, INVERTED_WHEN_BLENDING, USER_MASK_FROM_RENDERING_OTHER_DATA, USER_OR_VECTOR_MASKS_HAVE_PARAMETERS) mô tả hành vi render mật nà khi một lồp có mật nà.

Siêu dữ liệu Kênh và Mặt Nạ

Layer.channel_information trả về một danh sách các đối tượng ChannelInformation mô tả ID của mỗi kênh, phương pháp nén và độ dài tính bằng byte. Layer.layer_mask_data (một LayerMaskDataShort khi có) mô tả giới hạn và cờ của mặt nạ lớp; Layer.layer_blending_ranges_data cung cấp các dải pha trộn tổng hợp và theo kênh. Ba thuộc tính này đều chỉ đọc trong bản dựng FOSS này — các setter của chúng sẽ gây ra NotSupportedException nếu được gọi, mặc dù chúng xuất hiện như các thuộc tính thông thường.

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

Bắt đầu nhanh

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

Định dạng được hỗ trợ

Định dạngPhần mở rộngĐọcGhi
PSDpsd✓✓
PSBpsb✓✓

Mã nguồn mở & Bản quyền

Aspose.PSD FOSS cho Python được cấp phép MIT và có thể được sử dụng trong các sản phẩm thương mại mà không có phí bản quyền, không có dấu watermark đánh giá hay giới hạn sử dụng.

Thư viện không có bất kỳ phụ thuộc gốc của bên thứ ba nào — chỉ cần thư viện chuẩn Python được yêu cầu tại thời gian chạy.


Bắt đầu

Tài nguyên liên quan