ליבת API
ליבה API
PsdImage הוא נקודת הכניסה לטעינה, בדיקה ושמירה של מסמכי PSD/PSB. הוא מרחיב את מחלקת הבסיס האבסטרקטית Image, שמצהירה על Width, Height, Bounds, Load(), Save() ו-Dispose().
טעינה ושמירת מסמכים
Image.Load() מקבל נתיב קובץ או Stream ומחזיר Image; המרה של התוצאה ל-PsdImage מאפשרת גישה לשאר פני המסמך. PsdImage.Save() כותב את המסמך חזרה לקובץ או זרם.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);מאפייני כותרת המסמך
PsdImage מציג את הכותרת המפוענחת כמאפיינים עם טיפוסים: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size ו-IsFlatten.
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");משאבי תמונות
PsdImage.ImageResources מחזיר את המערך ResourceBlock[] שפורש. בבנייה זו של FOSS, ניתן לקרוא ImageResources, GlobalLayerResources, ActiveLayer ו-HasTransparencyData אך לא ניתן לשנות אותם — המגדירים שלהם זורקים NotSupportedException.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}טיפים ושיטות עבודה מומלצות
- תמיד המר את תוצאת
Image.Load()ל-PsdImageכדי לגשת לחברים ספציפיים ל-PSD. - עטוף עצמים בעלי ערך
Dispose()בתוך הצהרתusing;PsdImageמממש אתIDisposable. - התייחס ל-
ImageResources,GlobalLayerResources,ActiveLayerו-HasTransparencyDataכאל קריאה בלבד למרות שהם חושפים מגדיר. - בדוק את
image.Layers.Lengthלפני שמבצעים אינדקס ב-image.Layers— מסמך משטחים עשוי להכיל אפס שכבות.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
NotSupportedException בעת הגדרת ImageResources | המאפיין הזה הוא קריאה-בלבד בבנייה של FOSS למרות שיש לו setter | קראו את הערך; אל תנסו לשייך אותו מחדש |
מערך image.Layers ריק במסמך משטוח | IsFlatten הוא true ולמסמך אין שכבות מפוענחות | בדוק את image.Layers.Length (או image.IsFlatten) לפני אינדוקס ל-image.Layers |
FAQ
האם טעינת מסמך PSD מפענחת נתוני פיקסלים?
לא. PsdImage.Load() מנתח את כותרת המסמך, מטא-נתוני השכבות והמשאבים מבלי לפענח או להציג נתוני פיקסלים.
האם אני יכול להמיר קובץ PSD לפורמט תמונה אחר?
לא. הספרייה הזו טוענת, בודקת ושומרת מסמכי PSD/PSB בלבד — היא אינה מציגה נתוני פיקסלים או ממירה לפורמטים אחרים של תמונות.
API Reference סיכום
| מחלקה/מתודה | תיאור |
|---|---|
Image.Load(string) / Image.Load(Stream) | טוען מסמך PSD או PSB |
PsdImage.Save(string) / PsdImage.Save(Stream) | שומר את המסמך |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | מאפייני כותרת המסמך |
PsdImage.ImageResources | בלוקים של משאבי תמונה מפוענחים (קריאה בלבד) |