कैसे काम करें Aspose.PSD FOSS कोर API के साथ Python में

कैसे काम करें Aspose.PSD FOSS कोर API के साथ Python में

Aspose.PSD FOSS for Python PSD/PSB दस्तावेज़ संरचना को PsdImage के माध्यम से लोड और निरीक्षण करता है, जो Image की एक सबक्लास है। यह लेख एक दस्तावेज़ को लोड करने, उसकी हेडर और इमेज संसाधनों को पढ़ने, और इसे डिस्क पर फिर से सहेजने को कवर करता है।

चरण-दर-चरण मार्गदर्शिका

चरण 1: पैकेज स्थापित करें

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:$PYTHONPATH

चरण 2: आवश्यक क्लासेस आयात करें

PsdImage इस गाइड में पूरे उपयोग किया गया प्रवेश बिंदु है:

from aspose_psd_foss.psdimage import PsdImage

चरण 3: एक PSD/PSB दस्तावेज़ लोड करें

PsdImage.load() फ़ाइल पथ या स्ट्रीम से दस्तावेज़ खोलता है:

from aspose_psd_foss.psdimage import PsdImage

image = PsdImage.load("input.psd")

चरण 4: दस्तावेज़ हेडर का निरीक्षण करें

PsdImage पार्स किए गए दस्तावेज़ से पढ़े गए हेडर फ़ील्ड्स उजागर करता है: width, height, bits_per_channel, color_mode (एक ColorModes मान), और compression (एक CompressionMethod मान):

print(f"{image.width}x{image.height}, {image.bits_per_channel} bpc")
print(f"Color mode: {image.color_mode}")    # e.g. ColorModes.RGB
print(f"Compression: {image.compression}")  # e.g. CompressionMethod.RLE
print(f"Flattened: {image.is_flatten}")

ColorModes मान हैं BITMAP, GRAYSCALE, INDEXED, RGB, CMYK, MULTICHANNEL, DUOTONE, और LAB. CompressionMethod मान हैं RAW, RLE, ZIP_WITHOUT_PREDICTION, और ZIP_WITH_PREDICTION.


चरण 5: छवि संसाधन ब्लॉक्स पढ़ें

image_resources दस्तावेज़ के पार्स किए गए ResourceBlock एंट्रीज़ लौटाता है। प्रत्येक ब्लॉक id, name, और size उजागर करता है:

for resource in image.image_resources:
    print(f"Resource {resource.id} \"{resource.name}\" - {resource.size} bytes")

image_resources इस FOSS बिल्ड में केवल-पढ़ने योग्य है — इसे असाइन करने पर त्रुटि उत्पन्न होती है NotSupportedException (देखें Known Limitations में FAQ).


चरण 6: दस्तावेज़ सहेजें

दस्तावेज़ को डिस्क पर वापस लिखें, फिर इमेज के संसाधनों को मुक्त करें:

image.save("output.psd")
image.dispose()

सामान्य समस्याएँ और समाधान

PsdLoadException फ़ाइल लोड करते समय। इनपुट एक वैध PSD/PSB दस्तावेज़ नहीं है, या इसका हेडर सत्यापन में विफल रहा। लोड करने से पहले पुष्टि करें कि फ़ाइल एक वास्तविक PSD/PSB फ़ाइल है।

NotSupportedException सेट करते समय image_resources or global_layer_resources. इन सेटर्स का इस FOSS बिल्ड में समर्थन नहीं है। मानें image_resources के रूप में केवल-पढ़ने योग्य।

अक्सर पूछे जाने वाले प्रश्न

क्या मैं फ़ाइल पथ के बजाय स्ट्रीम से PSD फ़ाइल लोड कर सकता हूँ?

हाँ — PsdImage.load() फ़ाइल पाथ स्ट्रिंग या रीडेबल स्ट्रीम (io.BytesIO/io.BufferedIOBase) दोनों को स्वीकार करता है।

क्या image_resources लेयर डेटा शामिल करता है?

नहीं। image_resources दस्तावेज़-स्तर के संसाधन ब्लॉक्स रखता है (PSD इमेज संसाधन सेक्शन से पार्स किए गए)। लेयर-स्तर का डेटा के द्वारा पढ़ा जाता है PsdImage.layers — देखें लेयरों के साथ काम करना.

क्या PsdImage.version PSD फ़ाइल फ़ॉर्मेट संस्करण है?

नहीं। PsdImage.version आंतरिक Aspose.PSD-संगत API संस्करण संख्या रिपोर्ट करता है (वर्तमान में 6) — यह इस बात से असंबंधित है कि लोड की गई फ़ाइल PSD है या PSB। इसका सेट्टर केवल मान 6 को स्वीकार करता है; कोई अन्य मान ValueError उत्पन्न करता है।

यह भी देखें

 हिन्दी