ליבה API
ליבת API
PsdImage הוא נקודת הכניסה לטעינה, בחינה ושמירה של מסמכי PSD/PSB. הוא מרחיב את המחלקה הבסיסית האבסטרקטית Image, שמגדירה רק load() — שאר משטח המסמך (width, height, save(), תמיכה במנהל הקשר) מוגדר ב-PsdImage עצמו, ולא בירושה.
טעינה ושמירת מסמכים
Image.load() מקבל נתיב קובץ או זרם ומחזיר Image; עבור קלט PSD/PSB זה תמיד PsdImage, ולכן משטח המסמך זמין מיד ללא המרה מפורשת. PsdImage גם תומך בפקודת with לניקוי אוטומטי, ו-PsdImage.save() כותב את המסמך חזרה לקובץ או לזרם.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)מאפייני כותרת המסמך
PsdImage מציג את הכותרת המפוענחת כמאפיינים מסוג: width, height, bits_per_channel, color_mode, version, compression, size, ו-is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")משאבי תמונה
PsdImage.image_resources מחזיר את הרשימה המפוענחת של עצמים ResourceBlock. בבנייה זו של FOSS, ניתן לקרוא את image_resources, global_layer_resources, active_layer ו-has_transparency_data אך לא לשנות אותם — המגדירים שלהם מזריקים NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")טיפים ושיטות מומלצות
Image.load()כבר מחזירPsdImageעבור קלט PSD/PSB — אין צורך בהמרה, בניגוד לחלק מהגרסאות של הספרייה לשפות אחרות.- השתמש בפקודת
with;PsdImageתומכת בפרוטוקול מנהל ההקשר לניקוי. - התייחס ל-
image_resources,global_layer_resources,active_layerו-has_transparency_dataכאל קריאה בלבד למרות שהם חושפים setter. - בדוק את
image.layer_countלפני גישה ל-image.layers— מסמך משטוח עשוי להכיל אפס שכבות.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
NotSupportedException כאשר מגדירים image_resources | המאפיין הזה הוא קריאה בלבד בבנייה של FOSS למרות שיש לו setter | קראו את הערך; אל תנסו לשייך לו מחדש |
רשימת image.layers ריקה במסמך משטח | is_flatten הוא True והמסמך אינו מכיל שכבות מפוענחות | בדוק את image.layer_count (או image.is_flatten) לפני אינדוקס ל-image.layers |
FAQ
האם טעינת מסמך PSD מפענחת נתוני פיקסלים?
לא. PsdImage.load() מפענח את כותרת המסמך, מטא-נתוני השכבה, והמשאבים מבלי לפענח או להציג נתוני פיקסלים.
האם אני יכול להמיר קובץ PSD לפורמט תמונה אחר?
לא. ספרייה זו טוענת, בודקת ושומרת רק מסמכי PSD/PSB — היא אינה מציגה נתוני פיקסלים או ממירה לפורמטים אחרים של תמונות.
API Reference סיכום
| מחלקה/מתודה | תיאור |
|---|---|
Image.load(path) / Image.load(stream) | טוען מסמך PSD או PSB |
PsdImage.save(path) / PsdImage.save(stream) | שומר את המסמך |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | מאפייני כותרת המסמך |
PsdImage.image_resources | בלוקי משאבי תמונה שפורשו (קריאה בלבד) |