PSD Katmanlarıyla Python'de Nasıl Çalışılır

PSD Katmanlarıyla Python'de Nasıl Çalışılır

Bu kılavuz, bir belgenin katmanlarını listelemeyi, düzenlenebilir katman meta verilerini okumayı ve değiştirmeyi, bir katmanı yeniden konumlandırmayı ve katmanı koleksiyondan kaldırmayı gösterir. Yüklenmiş bir PsdImage‘ın layers özelliği, Layer nesnelerinin koleksiyonunu döndürür. Her Layer, düzenlenebilir meta verileri — ad, görünürlük, opaklık, kırpma, karıştırma modu ve konum (sınır kenarları) — ve ayrıca sadece okunabilir genel sınırlar ve kanal bilgilerini ortaya çıkarır.

Adım Adım Kılavuz

Adım 1: Paketi Kurun

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

Adım 2: Gerekli Sınıfları İçe Aktarın

PsdImage belgeyi yükler; BlendMode daha sonra bir katmanın karıştırma modunu ayarlamak için kullanılır:

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode

Adım 3: Bir Belge Yükleyin ve Katmanlarını Listeleyin

Belgeyi yükleyin, ardından layers üzerinden döngü yaparak her katmanın adını ve geometrisini görün:

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

for layer in image.layers:
    print(f"{layer.name}: {layer.width}x{layer.height} at ({layer.left},{layer.top})")

Adım 4: Katman Görünürlüğünü, Opaklığını ve Karışım Modunu Okuyun ve Düzenleyin

is_visible, opacity (genellikle 0-255), clipping, name ve blend_mode_key hepsinin çalışan ayarlayıcıları vardır:

layer = image.layers[0]

layer.is_visible = False          # hide the layer
layer.opacity = 200               # ~78% opacity
layer.blend_mode_key = BlendMode.MULTIPLY
layer.name = "Renamed Layer"

Adım 5: Katman Sınırlarını Okuyun ve Yeniden Konumlandırın

bounds, width, height ve channels_count sadece okunabilir — ancak top, left, bottom ve right her biri katmanı yeniden konumlandıran çalışan bir ayarlayıcıya sahiptir:

print(f"Bounds: {layer.bounds}")
print(f"Channels: {layer.channels_count}")

layer.left = 10
layer.top = 20
layer.right = 40
layer.bottom = 60

Adım 6: Katmanlar Koleksiyonunu Değiştirin

PsdImage.layers kendisi bir çalışan ayarlayıcıya sahiptir, böylece tüm koleksiyonu değiştirebilirsiniz (örneğin, bir katmanı kaldırmak için):

image.layers = [l for l in image.layers if l.name != "Renamed Layer"]

Adım 7: Belgeyi Kaydet

Önceki adımlarda yapılan her düzenlemeyi diske kaydedin, ardından görüntünün kaynaklarını serbest bırakın:

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

Yaygın Sorunlar ve Çözümler

NotSupportedException ayar yaparken channel_information, layer_mask_data, ya da layer_blending_ranges_data. Bu üç Layer setters bu FOSS sürümde desteklenmiyor — onları read-only olarak kabul edin.

Opacity değeri ayarlandıktan sonra yanlış görünüyor. opacity genellikle 0-255 değeridir, 0.0-1.0 kesri ya da yüzde değildir — layer.opacity = 200 yaklaşık %78 opak (200/255) anlamına gelir.

layer üzerindeki değişiklikler kaydettikten sonra görünmüyor. Değiştirdiğinizi onaylayın Layer örnek alındığı image.layers, ve çağırdığınız image.save() düzenlemelerinizi yaptıktan sonra.

Sıkça Sorulan Sorular

Bir belgeden bir katmanı kaldırabilir miyim?

Evet — PsdImage.layers çalışan bir ayarlayıcıya sahiptir, bu yüzden katmanları kaldırmak için ona filtrelenmiş bir liste atayabilirsiniz (Adım 6’ya bakın).

Mevcut karıştırma modları nelerdir?

BlendMode NORMAL, MULTIPLY, SCREEN, OVERLAY ve DARKEN gibi değerleri, diğerleri arasında içerir — Layer.blend_mode_key aracılığıyla ayarlanır.

Katman maskesi verisi mevcut mu?

Layer.layer_mask_data çalışan bir alıcıya sahiptir, ancak bu FOSS sürümünde ayarlayıcısı NotSupportedException hatası verir.

Ayrıca Bakınız

 Türkçe