परिचय

PsdImage.Layers एक PSD या PSB दस्तावेज़ में प्रत्येक लेयर को Layer एरे के रूप में वापस करता है। यह पोस्ट विशेष रूप से यह देखती है कि एक Layer क्या उजागर करता है: उसकी ज्यामिति और दृश्य स्थिति, ब्लेंड मोड और मास्क फ़्लैग एन्यूमरेशन, और मेटाडाटा क्लासेज़ जो लेयर के चैनल्स, मास्क, और ब्लेंडिंग रेंजेज़ का वर्णन करती हैं।


क्या शामिल है

लेयर क्लास

प्रत्येक Layer में एक पास्कल नाम (Name), एक बाउंडिंग Rectangle (Bounds, जिसमें व्युत्पन्न Width/Height/Top/Left/Bottom/Right शामिल हैं), दृश्यता और संयोजन स्थिति (IsVisible, Opacity, Clipping, BlendModeKey), और एक चैनल गिनती (ChannelsCount) होती है। Name, IsVisible, Opacity, Clipping, BlendModeKey, और चार बाउंड्स किनारे सभी को PsdImage.Save() के साथ बदलकर पुनः लिखा जा सकता है।

using var image = (PsdImage)Image.Load(inputPath);

foreach (Layer layer in image.Layers)
{
    Console.WriteLine($"{layer.Name}: {layer.Bounds}, " +
                       $"Visible={layer.IsVisible}, Opacity={layer.Opacity}, " +
                       $"BlendMode={layer.BlendModeKey}");
}

ब्लेंड मोड्स और मास्क फ़्लैग्स

BlendModeKey एक BlendMode एनम वैल्यू है — लाइब्रेरी सभी 29 मानक PSD ब्लेंड मोड्स को परिभाषित करती है (Normal, Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn, HardLight, SoftLight, Difference, Exclusion, Hue, Saturation, Color, Luminosity, और अन्य)। एक अलग LayerMaskFlags एनम (None, RelativeToLayer, Disabled, InvertedWhenBlending, UserMaskFromRenderingOtherData, UserOrVectorMasksHaveParameters) उस मास्क-रेंडरिंग व्यवहार का वर्णन करता है जहाँ लेयर में एक होता है।

चैनल और मास्क मेटाडेटा

Layer.ChannelInformation प्रत्येक चैनल की ID, संपीड़न विधि, और बाइट लंबाई का वर्णन करने वाला ChannelInformation[] लौटाता है। Layer.LayerMaskData (एक सारभूत LayerMaskData, जब मौजूद हो तो एक विशिष्ट LayerMaskDataShort) एक लेयर मास्क की सीमा और फ़्लैग का वर्णन करता है; Layer.LayerBlendingRangesData सम्मिश्र और प्रति-चैनल ब्लेंड रेंज को उजागर करता है। इन तीनों प्रॉपर्टीज़ को इस FOSS बिल्ड में केवल-पढ़ने योग्य बनाया गया है — उनके सेटर्स को कॉल करने पर NotSupportedException फेंकते हैं, हालांकि वे सामान्य get/set प्रॉपर्टीज़ की तरह दिखते हैं।

Layer layer = image.Layers[0];
foreach (ChannelInformation channel in layer.ChannelInformation)
{
    Console.WriteLine($"Channel {channel.ChannelID}: {channel.CompressionMethod}, {channel.Length} bytes");
}

if (layer.LayerMaskData is { } mask)
{
    Console.WriteLine($"Mask bounds: {mask.MaskRectangle}, flags: {mask.Flags}");
}

त्वरित प्रारंभ

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.FileFormats.Psd.Layers;
using System.Linq;

using var image = (PsdImage)Image.Load("input.psd");

var visibleLayers = image.Layers.Where(layer => layer.IsVisible);
foreach (Layer layer in visibleLayers)
{
    Console.WriteLine($"{layer.Name}: Opacity={layer.Opacity}, BlendMode={layer.BlendModeKey}");
}

समर्थित फ़ॉर्मेट

फ़ॉर्मेटएक्सटेंशनपढ़ेंलिखें
फ़ोटोशॉप दस्तावेज़psd✓✓
फ़ोटोशॉप बड़ा दस्तावेज़psb✓✓

ओपन सोर्स एवं लाइसेंसिंग

Aspose.PSD FOSS .NET के लिए MIT लाइसेंस के तहत है और इसे वाणिज्यिक उत्पादों में बिना रॉयल्टी के उपयोग किया जा सकता है, बिना किसी मूल्यांकन वॉटरमार्क या उपयोग सीमा के।

पैकेज संस्करण 1.0.0 पर है और रनटाइम पर केवल .NET 10.0 की आवश्यकता है — इसकी कोई अन्य तृतीय-पक्ष निर्भरताएँ नहीं हैं।


शुरू करना

संबंधित संसाधन