Layers
Layers
PsdImage.layers प्रत्येक पार्स की गई परत को Layer ऑब्जेक्ट्स की सूची के रूप में लौटाता है। प्रत्येक Layer अपनी ज्यामिति, दृश्यता और संयोजन स्थिति, तथा इसके चैनल, मास्क, और ब्लेंडिंग रेंज के बारे में मेटाडेटा उजागर करता है।
परत मेटाडेटा पढ़ना
name, bounds (और व्युत्पन्न width/height/top/left/bottom/right), is_visible, opacity, clipping, blend_mode_key, और channels_count सभी सीधे पढ़े जा सकते हैं।
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}")समर्थित मेटाडेटा संपादन
name, is_visible, opacity, clipping, blend_mode_key, और चार सीमा किनारे (top/left/bottom/right) को स्थान पर बदला जा सकता है और PsdImage.save() के साथ पुन: लिखा जा सकता है।
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode
with PsdImage.load("input.psd") as image:
layer = image.layers[0]
layer.name = f"{layer.name} (edited)"
layer.is_visible = not layer.is_visible
layer.opacity = 128
layer.blend_mode_key = BlendMode.MULTIPLY
image.save("output.psd")चैनल और मास्क मेटाडेटा
channel_information, layer_mask_data, और layer_blending_ranges_data इस FOSS बिल्ड में केवल-पढ़ने योग्य हैं — उनके सेटर्स NotSupportedException उठाते हैं।
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}")लेयर्स को हटाना या पुन:क्रमित करना
PsdImage.layers में एक सेट्टर और एक गेट्टर दोनों होते हैं: फ़िल्टर की गई या पुन:क्रमित सूची को असाइन करने से दस्तावेज़ की लेयर संग्रह बदल जाता है।
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
image.layers = [layer for layer in image.layers if layer.is_visible]
image.save("output.psd")टिप्स और सर्वोत्तम प्रथाएँ
- स्थिति द्वारा
image.layersमें इंडेक्स करें; सूची क्रम दस्तावेज़ के अपने लेयर क्रम से मेल खाता है। blend_mode_keyकोई भीBlendModeएन्हम मान स्वीकार करता है — दस्तावेज़ के घोषित रंग मोड के विरुद्ध कोई सत्यापन नहीं किया जाता।channel_information,layer_mask_data, औरlayer_blending_ranges_dataको पढ़ा जा सकता है लेकिन कभी पुनः असाइन नहीं किया जा सकता।- सभी संपादन के बाद
PsdImage.save()को एक बार कॉल करें; प्रत्येक कॉल पूर्ण दस्तावेज़ को लिखता है।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
NotSupportedException जब channel_information, layer_mask_data, या layer_blending_ranges_data सेट किया जाता है | इन 3 प्रॉपर्टीज़ को FOSS बिल्ड में रीड-ओनली माना जाता है, बावजूद इसके कि उनका सेट्टर मौजूद है | मान पढ़ें; इसे पुनः असाइन करने का प्रयास न करें |
layer_mask_data एक्सेस जब कोई मास्क न हो | हर लेयर में मास्क उपविभाग नहीं होता | पढ़ने से पहले layer.has_mask_data जाँचें layer.layer_mask_data |
FAQ
क्या मैं लेयर हटा सकता हूँ?
हाँ — image.layers को फ़िल्टर की गई सूची में पुनः असाइन करें।
क्या मैं लेयर के चैनल या मास्क डेटा को बदल सकता हूँ?
नहीं। channel_information, layer_mask_data, और layer_blending_ranges_data केवल-पढ़ने योग्य हैं — केवल name, is_visible, opacity, clipping, blend_mode_key, और बाउंड्स किनारे बदले जा सकते हैं।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
PsdImage.layers | लेयर संग्रह को प्राप्त करता है या सेट करता है — हटाने/पुन:क्रमित करने के लिए सेट किया जा सकता है |
Layer.name / is_visible / opacity / clipping / blend_mode_key / top / left / bottom / right | समर्थित लेयर मेटाडेटा संपादन |
Layer.bounds / width / height / channels_count | Read-only लेयर ज्योमेट्री |
Layer.channel_information / layer_mask_data / layer_blending_ranges_data | Read-only चैनल/मास्क/ब्लेंडिंग मेटाडेटा |