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.Image.Load(filePath) أو Image.Load(stream) يفتح ملفًا ويعيد كائن Image، يتم تحويله إلى PsdImage للوصول إلى خصائص PSD الخاصةPsdImage.Width، Height و Size تُظهر أبعاد اللوحةPsdImage.ColorMode (ColorModes)، BitsPerChannel و Compression (CompressionMethod) تصف طريقة ترميز بيانات البكسلPsdImage.Version (PsdVersion) يميز بين PSD العادي وإصدار PSB للمستندات الكبيرةPsdImage.Layers تُعيد كل Layer بترتيب المستند؛ PsdImage.ActiveLayer تُبلغ أي منها هو النشطLayer يكشف عن Name، Bounds، Opacity، IsVisible، و BlendModeKey (BlendMode)Layer.ChannelInformation و Layer.LayerMaskData يكشفان عن بيانات القنوات والماسك للتفحص الأعمقLayer.ChannelsCount يُبلغ عن عدد قنوات الصورة التي يحملها الطبقةLayer.Name، Layer.Left/Top/Right/Bottom، و Layer.BlendModeKey مباشرةًPsdImage.Save(filePath) أو PsdImage.Save(stream) يحفظ المستند المعدل مرة أخرى على القرصImage.Load يؤكد أن التعديلات تتم بنجاح ذهابًا وإيابًاNotSupportedException إذا تم تعيينها — هذا الإصدار يدعم تعديل البيانات الوصفية فقط، وليس إعادة تأليف كاملةPsdImage.ImageResources و GlobalLayerResources تُعرِض مجموعات ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo يُبلغ عن معلومات قناع الطبقة على مستوى المستند بالكاملPsdImage.IsFlatten و HasTransparencyData يُبلّغان عن علامات على مستوى المستندPsdLoadException و PsdSaveException يظهِران أخطاء التحميل/الحفظ برسائل واضحةقم بتحميل ملف باستخدام 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، بما في ذلك في المنتجات التجارية.
انظر قسم التثبيت أعلاه لأمر التثبيت الحالي.
يقوم بتحميل وحفظ ملفات PSD و PSB (مستند فوتوشوب كبير). لا يقوم بعرض أو تصدير بيانات البكسل إلى تنسيقات نقطية أخرى مثل PNG أو JPEG.
PsdImage (فئة فرعية من Image). حمّل مستندًا باستخدام PsdImage.Load، ثم اقرأ مجموعة Layers وخصائص الرأس.
نعم — Layer يوفّر مُعيّن قيم يعمل لعدة خصائص، مثل الرؤية والاسم، وPsdImage.Layers نفسه لديه مُعيّن قيم يعمل لاستبدال المجموعة. بعض الخصائص المحددة (معلومات القناة، بيانات القناع، نطاقات الدمج، وبعض موارد مستوى المستند) هي للقراءة فقط في هذا البناء المفتوح المصدر وتطرح NotSupportedException إذا تم تعيينها.