النواة 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[] المُحلَّلة. في هذا الإصدار المفتوح المصدر، يمكن قراءة 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كقراءة فقط على الرغم من أنها تُظهر setter. - تحقق من
image.Layers.Lengthقبل الفهرسة إلىimage.Layers— قد يكون للمستند المسطح صفر طبقات.
مشكلات شائعة
| المشكلة | السبب | الإصلاح |
|---|---|---|
NotSupportedException عند تعيين ImageResources | هذه الخاصية للقراءة فقط في بناء FOSS على الرغم من وجود مُعيّن | اقرأ القيمة؛ لا تحاول إعادة تعيينها |
مصفوفة 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 | كتل موارد الصورة التي تم تحليلها (للقراءة فقط) |