परिचय
Aspose.PSD FOSS for Python PSD और PSB दस्तावेज़ों को छोटे क्लास सेट के माध्यम से लोड, निरीक्षण और सहेजता है। यह पोस्ट कोर API के उन भागों को देखती है जो परिचयात्मक पोस्ट में गहराई से नहीं कवर किए गए थे: Image और PsdImage एक-दूसरे से कैसे संबंधित हैं, लाइब्रेरी में उपयोग किए जाने वाले ज्योमेट्री वैल्यू टाइप्स, और लाइब्रेरी लोड और सेव त्रुटियों की रिपोर्ट कैसे करती है।
क्या शामिल है
इमेज और PsdImage
Image एक न्यूनतम एब्सट्रैक्ट बेस क्लास है: यह केवल load() को परिभाषित करता है, जो इनपुट का निरीक्षण करता है और एक कंक्रीट सबक्लास लौटाता है — PSD/PSB इनपुट के लिए, वह सबक्लास PsdImage है। पूर्ण दस्तावेज़ सतह — color_mode, version, layers, compression, bits_per_channel, size, और अधिक — PsdImage पर ही रहती है, Image बेस पर नहीं।
from aspose_psd_foss.image import Image
from aspose_psd_foss.psdimage import PsdImage
with Image.load("input.psd") as image:
assert isinstance(image, PsdImage)
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Size: {image.size}, Layers: {image.layer_count}")
ज्योमेट्री वैल्यू टाइप्स
Point, Size, Rectangle, और RectangleF API में कॉर्डिनेट्स और एक्सटेंट्स के लिए उपयोग किए जाने वाले वैल्यू टाइप्स हैं — Layer.bounds एक Rectangle है, और PsdImage.size एक Size है। Rectangle वास्तविक ज्योमेट्री मेथड्स रखता है: contains(), intersect_rect(), union_rect(), inflate(), और from_left_top_right_bottom(), आदि।
from aspose_psd_foss.rectangle import Rectangle
layer_bounds = image.layers[0].bounds
fully_inside = layer_bounds.contains(Rectangle(0, 0, 10, 10))
overlap = Rectangle.intersect_rect(layer_bounds, Rectangle(0, 0, 100, 100))
print(f"Contains (0,0,10,10): {fully_inside}, overlap: {overlap}")
संसाधन ब्लॉक्स और अपवाद
PsdImage.image_resources पार्स की गई ResourceBlock वस्तुओं की सूची लौटाता है — प्रत्येक एक id, name, data_size, और signature को उजागर करता है। इस FOSS बिल्ड में, image_resources, global_layer_resources, active_layer, और has_transparency_data को पढ़ा जा सकता है लेकिन पुनः असाइन नहीं किया जा सकता — प्रत्येक का एक setter है जो कॉल होने पर NotSupportedException उठाता है, इसलिए उन्हें केवल-पढ़ने योग्य मानें भले ही वे सामान्य प्रॉपर्टीज़ की तरह दिखते हैं।
लोड और सहेजने की त्रुटियां दो विशिष्ट अपवाद प्रकारों के रूप में प्रकट होती हैं: PsdLoadException जब कोई दस्तावेज़ पार्स नहीं हो पाता, और PsdSaveException जब कोई दस्तावेज़ वापस लिखी नहीं जा सकती।
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadException
try:
with PsdImage.load("input.psd") as image:
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")
except PsdLoadException as ex:
print(f"Failed to load input.psd: {ex}")
त्वरित आरंभ
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:$PYTHONPATHfrom aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadException
try:
with PsdImage.load("input.psd") as image:
print(f"Size: {image.size}, ColorMode: {image.color_mode}")
print(f"ImageResources: {image.resource_count}")
except PsdLoadException as ex:
print(f"Load failed: {ex}")
समर्थित स्वरूप
| फ़ॉर्मेट | एक्सटेंशन | पढ़ें | लिखें |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
ओपन सोर्स और लाइसेंसिंग
Aspose.PSD FOSS for Python MIT लाइसेंस के तहत है और इसे व्यावसायिक उत्पादों में बिना रॉयल्टी के उपयोग किया जा सकता है, बिना किसी मूल्यांकन वाटरमार्क या उपयोग सीमा के।
इस लाइब्रेरी में कोई थर्ड-पार्टी नेटिव निर्भरताएँ नहीं हैं — केवल Python मानक लाइब्रेरी को रनटाइम पर आवश्यकता होती है।