Resources
Resources
PsdImage טעון חושף את גושי משאבי התמונה שלו — רשומות בסגנון מטא-דטה כגון רשתות, קווים מנחים, וטעינות של פרופיל ICC — דרך שני תצוגות קריאה בלבד, בנוסף לסיכום נפרד לפאלטים צבעוניים ממופים.
רשימת גושי משאבים
PsdImage.image_resources מחזיר PreservedResourceBlock לכל משאב, כולל מזהה המשאב הגולמי, שם, וגודל בבתים:
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, מכיוון שהמפענח של משאבים בבנייה זו אינו מפענח מזהי משאבים ספציפיים לתכונות סמנטיות.
זיהוי מזהי משאבים מוכרים
מאחר ש-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)}")טיפים ושיטות מומלצות
- ה-getter של
PsdImage.image_resourcesעובד להצגת רשימת משאבים, אך ה-setter שלו מעלהNotSupportedException— המשאבים הם קריאה-בלבד בבנייה זו של FOSS. PsdImage.has_icc_profile,is_icc_profile_untaggedו-global_angleהם ערכי מציין-מקום קבועים בבנייה זו של FOSS (תמידFalse,Noneו-0בהתאמה) ללא קשר לתוכן האמיתי של המסמך הטעון — השתמש בתבנית השוואת מזהה-משאב שהוצגה למעלה אם אתה צריך לזהות משאבים אלו בעצמך.PreservedResourceBlock.save()מעלהNotImplementedErrorאם קוראים לו ישירות — המשאבים עוברים סיבוב אוטומטית כאשר אתה קורא ל-image.save()על כל המסמך.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
image.indexed_palette הוא None | סוג נתוני הצבע של המסמך אינו INDEXED_PALETTE | רק מסמכי צבע ממופים נושאים פלטה |
NotSupportedException הגדרת image.image_resources | ה-setter אינו נתמך בבנייה זו של FOSS | התייחס ל-image_resources כקריאה בלבד |
has_icc_profile / is_icc_profile_untagged / global_angle לעולם לא ישתנו | שלושת המאפיינים האלה קודקוד קבועים כחלופי מציין מיקום בבנייה של FOSS | השווה את block.id ל-ImageResourceIds במקום (ראה למעלה) |
FAQ
מה ההבדל בין image_resources ל-resources?
שניהם מציגים את אותם בלוקי משאבים בסיסיים, אך כסוגי אובייקטים שונים: image_resources מחזיר אובייקטי PreservedResourceBlock (זיהוי/שם/גודל גולמי, משמש להעברה חוזרת), בעוד resources מחזיר סיכומי PsdResourceInfo (מוסיף סיווג kind, שבכרגע תמיד UNKNOWN).
האם אני יכול לשנות או להסיר משאב תמונה?
לא — המגדיר של image_resources זורק NotSupportedException, ו-PreservedResourceBlock.save() זורק NotImplementedError אם הוא נקרא ישירות. המשאבים הם לקריאה בלבד בבנייה הזו של קוד פתוח.
סיכום API Reference
| מחלקה/מתודה | תיאור |
|---|---|
PsdImage.image_resources | בלוקי משאבים גולמיים (PreservedResourceBlock, קריאה בלבד) |
PsdImage.resources | תקצירי משאבים (PsdResourceInfo, kind תמיד UNKNOWN) |
PsdImage.indexed_palette | סיכום ערכת צבעים ממוספרת, כאשר קיים |
ImageResourceIds | קבועי מזהה משאב ידועים להשוואה מול resource_id/id |