परिचय
Aspose.PSD FOSS for .NET PSD और PSB दस्तावेज़ों को एक छोटे सेट की क्लासों के माध्यम से लोड, निरीक्षण और सहेजता है। यह पोस्ट कोर API के उन भागों को देखती है जो प्रारंभिक पोस्ट ने गहराई से नहीं कवर किए थे: Image/PsdImage विरासत संबंध, लाइब्रेरी में उपयोग किए गए ज्यामिति मान प्रकार, और लाइब्रेरी लोड और सहेजने की त्रुटियों को कैसे रिपोर्ट करती है।
क्या शामिल है
इमेज और PsdImage
Image एक सारभूत बेस क्लास है और Width, Height, Bounds, Load(), Save(), और Dispose() को उजागर करता है। PsdImage वह सील्ड, ठोस कार्यान्वयन है जिसे Image.Load() PSD/PSB इनपुट के लिए लौटाता है — परिणाम को PsdImage में कास्ट करने से दस्तावेज़ की शेष सतह उजागर होती है: ColorMode, Version, Layers, Compression, BitsPerChannel, और अधिक।
using var image = (PsdImage)Image.Load(inputPath);
Console.WriteLine($"Bounds: {image.Bounds}"); // from the Image base class
Console.WriteLine($"ColorMode: {image.ColorMode}"); // PsdImage-specific
ज्यामिति मान प्रकार
Point, Size, Rectangle, और RectangleF API में सीमाओं और निर्देशांक के लिए उपयोग किए जाने वाले मान प्रकार हैं — Layer.Bounds और Image.Bounds दोनों Rectangle हैं, और PsdImage.Size एक Size है। Rectangle वास्तविक ज्यामिति विधियों को वहन करता है: Contains(), Intersect(), Union(), Inflate(), और FromLeftTopRightBottom(), आदि।
Rectangle layerBounds = image.Layers[0].Bounds;
Rectangle imageBounds = image.Bounds;
bool fullyInside = imageBounds.Contains(layerBounds);
Rectangle overlap = Rectangle.Intersect(imageBounds, layerBounds);
Console.WriteLine($"Layer fits inside image: {fullyInside}, overlap: {overlap}");
संसाधन ब्लॉक्स और अपवाद
PsdImage.ImageResources पार्स किए गए ResourceBlock[] एरे को लौटाता है — प्रत्येक ब्लॉक ID, DataSize, Name, और Signature को उजागर करता है। इस FOSS बिल्ड में, ImageResources, GlobalLayerResources, ActiveLayer, और HasTransparencyData को पढ़ा जा सकता है लेकिन पुनः असाइन नहीं किया जा सकता — प्रत्येक का एक setter है जो कॉल किए जाने पर NotSupportedException फेंकता है, इसलिए उन्हें पढ़ने-के-लिए-केवल मानें भले ही वे प्रॉपर्टी की तरह दिखें।
लोड और सहेजने की त्रुटियां दो समर्पित अपवाद प्रकारों के रूप में प्रकट होती हैं: PsdLoadException जब कोई दस्तावेज़ पार्स नहीं किया जा सकता, और PsdSaveException जब कोई दस्तावेज़ वापस लिख नहीं सकता।
try
{
using var image = (PsdImage)Image.Load(inputPath);
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Failed to load {inputPath}: {ex.Message}");
}
त्वरित प्रारंभ
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildusing Aspose.PSD.FileFormats.Psd;
try
{
using var image = (PsdImage)Image.Load("input.psd");
Console.WriteLine($"Bounds: {image.Bounds}, ColorMode: {image.ColorMode}");
Console.WriteLine($"ImageResources: {image.ImageResources.Length}");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Load failed: {ex.Message}");
}
समर्थित फ़ॉर्मेट
| फ़ॉर्मेट | एक्सटेंशन | पढ़ें | लिखें |
|---|---|---|---|
| फ़ोटोशॉप दस्तावेज़ | psd | ✓ | ✓ |
| फ़ोटोशॉप बड़ा दस्तावेज़ | psb | ✓ | ✓ |
ओपन सोर्स & लाइसेंसिंग
Aspose.PSD FOSS for .NET MIT लाइसेंस के तहत है और इसे वाणिज्यिक उत्पादों में बिना रॉयल्टी के उपयोग किया जा सकता है, बिना किसी मूल्यांकन वॉटरमार्क या उपयोग सीमा के।
पैकेज संस्करण 1.0.0 पर है और रनटाइम पर केवल .NET10.0 की आवश्यकता है — इसमें कोई अन्य थर्ड-पार्टी निर्भरताएँ नहीं हैं।