Resources
Resources
एक लोड किया गया PsdImage अपनी इमेज रिसोर्स ब्लॉक्स — ग्रिड, गाइड, और ICC प्रोफ़ाइल पेलोड जैसे मेटाडाटा-शैली प्रविष्टियों — दो पढ़ने-के-लिए-केवल दृश्यों के माध्यम से प्रकट करता है, साथ ही अनुक्रमित रंग पैलेट के लिए एक अलग सारांश भी देता है।
रिसोर्स ब्लॉक्स की सूची
PsdImage.image_resources प्रत्येक संसाधन के लिए एक PreservedResourceBlock लौटाता है, जिसमें कच्चा रिसोर्स ID, नाम, और बाइट आकार शामिल है:
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.resources.imageresourceids import ImageResourceIds
image = PsdImage.load(input_path)
for block in image.image_resources:
print(f"ID: {block.id}, name: {block.name!r}, size: {block.size} bytes")PsdImage.resources इसके बजाय प्रत्येक संसाधन के लिए एक अलग PsdResourceInfo सारांश लौटाता है, जिसमें एक kind वर्गीकरण जोड़ा जाता है — इस FOSS बिल्ड में kind हमेशा PsdResourceKind.UNKNOWN रहता है, क्योंकि इस बिल्ड का रिसोर्स पार्सर विशिष्ट रिसोर्स ID को सार्थक गुणों में डिकोड नहीं करता।
ज्ञात रिसोर्स ID को पहचानना
चूँकि kind को अर्थात्मक रूप से हल नहीं किया गया है, एक विशिष्ट संसाधन को block.id की तुलना ImageResourceIds में स्थिरांक से करके पहचाना जा सकता है:
for block in image.image_resources:
if block.id == ImageResourceIds.ICC_PROFILE:
print(f"Found an ICC profile resource ({block.data_size} bytes)")इंडेक्स्ड कलर पैलेट पढ़ना
यदि दस्तावेज़ का रंग डेटा पैलेट-आधारित है, तो PsdImage.indexed_palette उसके प्रविष्टियों को लौटाता है:
palette = image.indexed_palette
if palette is not None:
print(f"Palette entries: {len(palette.entries)}")टिप्स और सर्वोत्तम प्रथाएँ
PsdImage.image_resourcesका गेटर संसाधनों को सूचीबद्ध करने के लिए काम करता है, लेकिन इसका सेटरNotSupportedExceptionउत्पन्न करता है — इस FOSS बिल्ड में संसाधन केवल-पढ़ने योग्य हैं।PsdImage.has_icc_profile,is_icc_profile_untagged, औरglobal_angleइस FOSS बिल्ड में निश्चित प्लेसहोल्डर मान हैं (हमेशा क्रमशःFalse,None, और0) लोड किए गए दस्तावेज़ की वास्तविक सामग्री से परे — यदि आपको स्वयं इन संसाधनों का पता लगाना हो तो ऊपर दिए गए resource-ID तुलना पैटर्न का उपयोग करें।PreservedResourceBlock.save()सीधे कॉल करने परNotImplementedErrorउत्पन्न करता है — जब आप पूरे दस्तावेज़ परimage.save()कॉल करते हैं तो संसाधन स्वचालित रूप से राउंड-ट्रिप होते हैं।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
image.indexed_palette है None | दस्तावेज़ का रंग डेटा प्रकार INDEXED_PALETTE नहीं है | केवल indexed-color दस्तावेज़ एक पैलेट रखते हैं |
NotSupportedException सेटिंग image.image_resources | इस FOSS बिल्ड में सेटर समर्थित नहीं है | image_resources को केवल-पढ़ने योग्य मानें |
has_icc_profile / is_icc_profile_untagged / global_angle कभी न बदलें | इन 3 प्रॉपर्टीज़ को इस FOSS बिल्ड में हार्डकोडेड प्लेसहोल्डर स्टब्स के रूप में शामिल किया गया है | इसके बजाय block.id की तुलना ImageResourceIds से करें (ऊपर देखें) |
FAQ
image_resources और resources के बीच क्या अंतर है?
दोनों समान अंतर्निहित रिसोर्स ब्लॉक्स को सूचीबद्ध करते हैं, लेकिन अलग-अलग ऑब्जेक्ट प्रकारों के रूप में: image_resources PreservedResourceBlock ऑब्जेक्ट्स लौटाता है (कच्चा ID/नाम/आकार, राउंड-ट्रिपिंग के लिए उपयोग किया जाता है), जबकि resources PsdResourceInfo सारांश लौटाता है (kind वर्गीकरण जोड़ता है, वर्तमान में हमेशा UNKNOWN होता है)।
क्या मैं किसी इमेज रिसोर्स को संशोधित या हटा सकता हूँ?
नहीं — image_resources का setter NotSupportedException उठाता है, और PreservedResourceBlock.save() सीधे कॉल किए जाने पर NotImplementedError उठाता है। इस FOSS बिल्ड में रिसोर्स पढ़ने-केवल हैं।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
PsdImage.image_resources | कच्चे संसाधन ब्लॉक्स (PreservedResourceBlock, केवल-पढ़ने योग्य) |
PsdImage.resources | संसाधन सारांश (PsdResourceInfo, kind हमेशा UNKNOWN) |
PsdImage.indexed_palette | इंडेक्स्ड रंग पैलेट सारांश, जब उपलब्ध हो |
ImageResourceIds | जाने हुए संसाधन ID स्थिरांक resource_id/id के विरुद्ध तुलना के लिए |