कोर API
कोर API
PsdImage लोड करने, निरीक्षण करने, और PSD/PSB दस्तावेज़ों को सहेजने के लिए प्रवेश बिंदु है। यह सारभूत Image बेस क्लास को विस्तारित करता है, जो Width, Height, Bounds, Load(), Save(), और Dispose() को घोषित करता है।
दस्तावेज़ लोड करना और सहेजना
Image.Load() फ़ाइल पथ या एक Stream स्वीकार करता है और एक Image लौटाता है; परिणाम को PsdImage में कास्ट करें ताकि दस्तावेज़ की शेष सतह तक पहुँच सकें। PsdImage.Save() दस्तावेज़ को फ़ाइल पथ या स्ट्रीम में वापस लिखता है।
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);दस्तावेज़ हैडर गुण
PsdImage पार्स किए गए हैडर को टाइप्ड प्रॉपर्टीज़ के रूप में उजागर करता है: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size, और IsFlatten।
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");छवि संसाधन
PsdImage.ImageResources पार्स किए गए ResourceBlock[] एरे को लौटाता है। इस FOSS बिल्ड में, ImageResources, GlobalLayerResources, ActiveLayer, और HasTransparencyData को पढ़ा जा सकता है लेकिन पुनः असाइन नहीं किया जा सकता — उनके सेटर्स NotSupportedException फेंकते हैं।
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}टिप्स और सर्वोत्तम प्रथाएँ
- हमेशा
Image.Load()के परिणाम कोPsdImageमें कास्ट करें ताकि PSD-विशिष्ट सदस्यों तक पहुंच सकें। Dispose()-योग्य वस्तुओं कोusingकथन में लपेटें;PsdImageIDisposableको लागू करता है।- भले ही वे सेट्टर उजागर करते हों,
ImageResources,GlobalLayerResources,ActiveLayer, औरHasTransparencyDataको केवल-पढ़ने योग्य मानें। image.Layersमें इंडेक्स करने से पहलेimage.Layers.Lengthजांचें — एक फ्लैटेड दस्तावेज़ में शून्य लेयर्स हो सकती हैं।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
NotSupportedException सेट करते समय ImageResources | यह प्रॉपर्टी FOSS बिल्ड में केवल-पढ़ने योग्य है, जबकि इसका सेट्टर मौजूद है | मान पढ़ें; इसे पुनः असाइन करने का प्रयास न करें |
फ़्लैटेड दस्तावेज़ पर खाली image.Layers ऐरे | IsFlatten true है और दस्तावेज़ में कोई पार्स्ड लेयर नहीं है | इंडेक्सिंग करने से पहले image.Layers में image.Layers.Length (या image.IsFlatten) की जाँच करें |
FAQ
क्या PSD दस्तावेज़ को लोड करने से पिक्सेल डेटा डिकोड होता है?
नहीं। PsdImage.Load() दस्तावेज़ हेडर, लेयर मेटाडेटा और संसाधनों को डिकोड किए बिना या पिक्सेल डेटा को रेंडर किए बिना पार्स करता है।
क्या मैं PSD फ़ाइल को किसी अन्य इमेज फ़ॉर्मेट में बदल सकता हूँ?
नहीं। यह लाइब्रेरी केवल PSD/PSB दस्तावेज़ों को लोड, निरीक्षण और सहेजती है — यह पिक्सेल डेटा को रेंडर नहीं करती या अन्य इमेज फ़ॉर्मेट में परिवर्तित नहीं करती।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
Image.Load(string) / Image.Load(Stream) | एक PSD या PSB दस्तावेज़ लोड करता है |
PsdImage.Save(string) / PsdImage.Save(Stream) | दस्तावेज़ को सहेजता है |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | दस्तावेज़ हेडर गुण |
PsdImage.ImageResources | पार्स किए गए image resource blocks (केवल-पढ़ने-योग्य) |