1. المنتجات
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for .NET

Aspose.PSD FOSS لـ .NET

مكتبة .NET مفتوحة المصدر لتحميل وفحص وحفظ ملفات PSD/PSB مع إمكانية الوصول إلى بيانات تعريف الطبقات. مرخصة برخصة MIT، ولا يتطلب Adobe Photoshop.

مكتبة .NET مفتوحة المصدر لملفات PSD/PSB

Aspose.PSD FOSS for .NET هي مكتبة مجانية، مرخصة تحت MIT، ومطابقة صافية لـ C# لتحميل، فحص, وحفظ ملفات Adobe Photoshop PSD و PSB دون الحاجة إلى Adobe Photoshop أو أي بيئة تشغيل مملوكة. إنها تعرض API خفيفة الوزن ومستقلة تركز على PsdImage و Layer، مما يمنح مطوري .NET وصولًا برمجيًا إلى بنية مستند PSD دون أي تبعيات أصلية للتجميع. تقرأ المكتبة أبعاد ملف PSD/PSB، وضع اللون، عمق البت، وطريقة الضغط، وتعرض كل طبقة عبر PsdImage.Layers: كل Layer تُبلغ عن اسمها، حدودها، شفافيتها، رؤيتها، ومفتاح وضع المزج (BlendMode)، إلى جانب معلومات القناة ذات المستوى الأدنى (ChannelInformation) وبيانات القناع (LayerMaskData). يمكن تعديل مجموعة فرعية من بيانات تعريف الطبقة — الاسم، الحدود (Left/Top/Right/Bottom)، ووضع المزج — في مكانها وحفظها مرة أخرى إلى القرص باستخدام PsdImage.Save()؛ كل ما هو آخر على السطح هو للقراءة فقط حسب التصميم في هذا البناء المفتوح المصدر. Aspose.PSD FOSS for .NET مرخصة تحت MIT. قم بتثبيتها باستخدام dotnet add package Aspose.PSD.FOSS — المكتبة لا تحتوي على أي تبعيات أصلية من طرف ثالث، فقط .NET BCL. لعائلة منتجات المؤسسة، انظر Aspose.PSD — Enterprise Product Family.

تحميل وفحص ملفات PSD/PSB

  • Image.Load(filePath) أو Image.Load(stream) يفتح ملفًا ويعيد كائن Image، يتم تحويله إلى PsdImage للوصول إلى خصائص PSD الخاصة
  • PsdImage.Width، Height و Size تُظهر أبعاد اللوحة
  • PsdImage.ColorMode (ColorModes)، BitsPerChannel و Compression (CompressionMethod) تصف طريقة ترميز بيانات البكسل
  • PsdImage.Version (PsdVersion) يميز بين PSD العادي وإصدار PSB للمستندات الكبيرة

تحقق من صحة ملفات التصميم وفهرستها

  • تحقق من صحة دفعة من ملفات التصميم قبل تسليمها إلى عملية لاحقة
  • أنشئ كتالوجًا خفيفًا للأصول يضم أبعاد PSD/PSB وأنماط الألوان
  • اكتشف ملفات PSB (مستندات كبيرة) التي تحتاج إلى معالجة مختلفة عن PSD القياسي

العمل مع الطبقات

  • PsdImage.Layers تُعيد كل Layer بترتيب المستند؛ PsdImage.ActiveLayer تُبلغ أي منها هو النشط
  • كل Layer يكشف عن Name، Bounds، Opacity، IsVisible، و BlendModeKey (BlendMode)
  • Layer.ChannelInformation و Layer.LayerMaskData يكشفان عن بيانات القنوات والماسك للتفحص الأعمق
  • Layer.ChannelsCount يُبلغ عن عدد قنوات الصورة التي يحملها الطبقة

هيكل طبقة التدقيق

  • تدقيق بنية طبقات ملف PSD دون فتح برنامج Photoshop
  • إنشاء تقرير بأسماء الطبقات، والظهور، وأنماط المزج لمراجعة التصميم
  • تحديد الطبقات المخفية أو ذات الشفافية الصفرية المتبقية من التعديلات السابقة

تحرير بيانات تعريف الطبقة الأساسية

  • يمكن تعيين Layer.Name، Layer.Left/Top/Right/Bottom، و Layer.BlendModeKey مباشرةً
  • PsdImage.Save(filePath) أو PsdImage.Save(stream) يحفظ المستند المعدل مرة أخرى على القرص
  • إعادة تحميل ملف محفوظ باستخدام Image.Load يؤكد أن التعديلات تتم بنجاح ذهابًا وإيابًا
  • الخصائص غير المذكورة أعلاه (معلومات القناة، بيانات القناع، نطاقات الدمج، موارد الصورة) تُثير استثناء NotSupportedException إذا تم تعيينها — هذا الإصدار يدعم تعديل البيانات الوصفية فقط، وليس إعادة تأليف كاملة

تحريرات خفيفة الوزن، قابلة للبرمجة

  • إعادة تسمية الطبقات برمجياً كجزء من خط أنابيب تنظيم الملفات الآلي
  • إعادة وضع أو تغيير حجم صندوق حدود الطبقة دون أداة تصميم
  • تحديث دفعي لأنماط المزج عبر العديد من الملفات لضمان التناسق

فحص كتل الموارد وحالة المستند

  • PsdImage.ImageResources و GlobalLayerResources تُعرِض مجموعات ResourceBlock/LayerResource
  • PsdImage.GlobalLayerMaskInfo يُبلغ عن معلومات قناع الطبقة على مستوى المستند بالكامل
  • PsdImage.IsFlatten و HasTransparencyData يُبلّغان عن علامات على مستوى المستند
  • PsdLoadException و PsdSaveException يظهِران أخطاء التحميل/الحفظ برسائل واضحة

تشخيص وفحص

  • تشخيص سبب فشل تحميل ملف PSD معين، باستخدام استثناء محدد بدلاً من خطأ عام
  • التحقق مما إذا تم حفظ الملف بصيغة مسطحة قبل المعالجة الإضافية
  • فحص كتل الموارد المضمنة للحصول على بيانات تعريف على مستوى التنسيق

تحميل ملف PSD وفحص طبقاته

قم بتحميل ملف باستخدام Image.Load وحوّل النتيجة إلى PsdImage لاستخدام الأعضاء الخاصة بـ PSD.

using var image = (PsdImage)Image.Load("test.psd");
Console.WriteLine($"Width: {image.Width}, Channels: {image.ChannelsCount}, Layers: {image.Layers.Length}");
Layer layer = image.Layers[0];
Console.WriteLine($"Bounds: {layer.Bounds}, BlendMode: {layer.BlendModeKey}, Opacity: {layer.Opacity}, Visible: {layer.IsVisible}");

تحرير بيانات تعريف الطبقة وحفظها

يمكن تغيير اسم الطبقة والحدود ووضعية المزج في الموقع وحفظها مرة أخرى على القرص.

using (var image = (PsdImage)Image.Load("test.psd"))
{
    image.Layers[0].Name = "Renamed layer";
    image.Layers[0].Left = 10;
    image.Layers[0].Top = 20;
    image.Layers[0].Right = 40;
    image.Layers[0].Bottom = 60;
    image.Layers[0].BlendModeKey = BlendMode.Multiply;
    image.Save("edited.psd");
}

using var reloaded = (PsdImage)Image.Load("edited.psd");
Console.WriteLine($"Name: {reloaded.Layers[0].Name}, BlendMode: {reloaded.Layers[0].BlendModeKey}");

قراءة معلومات القناة (للقراءة فقط)

يمكن قراءة معلومات القناة ولكن لا يمكن إعادة تعيينها — محاولة تعيينها تُثير استثناء NotSupportedException.

using var image = (PsdImage)Image.Load("test.psd");
Layer layer = image.Layers[0];
ChannelInformation[] channelInformation = layer.ChannelInformation;
Console.WriteLine($"Channel count: {layer.ChannelsCount}, First channel length: `NotSupportedException`");
// layer.ChannelInformation = channelInformation; // throws NotSupportedException

الأسئلة الشائعة

ما هو نموذج الترخيص؟

Aspose.PSD FOSS for .NET مرخص برخصة MIT. يمكنك استخدامه وتعديله وإعادة توزيعه وفقًا لشروط رخصة MIT، بما في ذلك في المنتجات التجارية.

كيف أقوم بتثبيت Aspose.PSD FOSS for .NET؟

انظر قسم التثبيت أعلاه لأمر التثبيت الحالي.

ما هي الصيغ التي يمكن لـ Aspose.PSD FOSS for .NET قراءتها وكتابتها؟

يقوم بتحميل وحفظ ملفات PSD و PSB (مستند فوتوشوب كبير). لا يقوم بعرض أو تصدير بيانات البكسل إلى تنسيقات نقطية أخرى مثل PNG أو JPEG.

ما هي الفئة الرئيسية لنقطة الدخول؟

PsdImage (فئة فرعية من Image). حمّل مستندًا باستخدام PsdImage.Load، ثم اقرأ مجموعة Layers وخصائص الرأس.

هل يمكنني تعديل بيانات تعريف الطبقة؟

نعم — Layer يوفّر مُعيّن قيم يعمل لعدة خصائص، مثل الرؤية والاسم، وPsdImage.Layers نفسه لديه مُعيّن قيم يعمل لاستبدال المجموعة. بعض الخصائص المحددة (معلومات القناة، بيانات القناع، نطاقات الدمج، وبعض موارد مستوى المستند) هي للقراءة فقط في هذا البناء المفتوح المصدر وتطرح NotSupportedException إذا تم تعيينها.

  

الدعم وموارد التعلم

 العربية