כיצד לעבוד עם Aspose.PSD FOSS Core API ב-Python

כיצד לעבוד עם Aspose.PSD FOSS Core API ב-Python

Aspose.PSD FOSS עבור 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 (ראו הגבלות ידועות ב- 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 מדווח על מספר גרסת API פנימי תואם Aspose.PSD (כיום 6) — הוא אינו קשור לשאלה האם הקובץ שהוטען הוא PSD או PSB. המגדיר שלו מקבל רק את הערך 6; כל ערך אחר גורם ל-ValueError.

ראה גם

 עברית