ליבת 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בלוקים של משאבי תמונה מפוענחים (קריאה בלבד)

ראה גם

 עברית