PSD Layer

نظرة عامة

طبقة PSD في Adobe® Photoshop® هي واحدة من أفضل المفاهيم في معالجة الرسومات. الطبقات تحتوي على معلومات حول البكسلات، ويمكن أن تحتوي على عدد مختلف من القنوات.

أحد أهم أجزاء الطبقة في مستند Photoshop هي موارد الطبقة. يمكنك الحصول على قائمة كاملة من موارد الطبقة المدعومة في PSD من وثائقنا.

يمكنك العثور على واجهة المستخدم للتلاعب بالطبقة في اللقطة الشاشة التالية:

todo:image_alt_text

لكن Aspose.PSD متخصص في التلاعب ببرمجية طبقة PSD عبر C# و جافا.

يمكن العثور على توثيق إضافي في هذا المقال: تلاعب الصور. يمكن معالجة جميع عمليات التلاعب لمعاينة PSD والطبقة، تجد المزيد من المعلومات في مرجع API صور النقطة.

واجهة برمجة تطبيقات طبقة PSD المتاحة

  • تأثيرات الطبقة
  • خصائص الطبقات الشائعة
  • بيانات طبقة

أمثلة على تحرير الطبقة عبر C#

إضافة طبقة جديدة

إذا كنت ترغب في إضافة طبقة فارغة إلى ملف PSD المفتوح يمكنك استخدام الكود التالي.

إضافة طبقة جديدة إلى ملف PSD باستخدام واجهة برمجة التطبيقات

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Make ability to add the newly generated regular layer to PsdImage
string sourceFileName = dataDir + "OneLayer.psd";
string exportPath = dataDir + "OneLayerEdited.psd";
string exportPathPng = dataDir + "OneLayerEdited.png";
using (var im = (PsdImage)Image.Load(sourceFileName))
{
// Preparing two int arrays
var data1 = new int[2500];
var data2 = new int[2500];
var rect1 = new Rectangle(0, 0, 50, 50);
var rect2 = new Rectangle(0, 0, 100, 25);
for (int i = 0; i < 2500; i++)
{
data1[i] = -10000000;
data2[i] = -10000000;
}
var layer1 = im.AddRegularLayer();
layer1.Left = 25;
layer1.Top = 25;
layer1.Right = 75;
layer1.Bottom = 75;
layer1.SaveArgb32Pixels(rect1, data1);
var layer2 = im.AddRegularLayer();
layer2.Left = 25;
layer2.Top = 150;
layer2.Right = 125;
layer2.Bottom = 175;
layer2.SaveArgb32Pixels(rect2, data2);
// Save psd
im.Save(exportPath, new PsdOptions());
// Save png
im.Save(exportPathPng, new PngOptions());
}

إضافة طبقة جديدة من ملفات Jpeg و Png و Gif و Ai و Tiff و Bmp

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

يمكنك استخدام الكود أدناه لإضافة طبقة PSD جديدة من ملف بأي تنسيق مدعوم من التدفق

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outputFilePath = dataDir + "PsdResult.psd";
var filesList = new string[]
{
"PsdExample.psd",
"BmpExample.bmp",
"GifExample.gif",
"Jpeg2000Example.jpf",
"JpegExample.jpg",
"PngExample.png",
"TiffExample.tif",
};
using (var image = new PsdImage(200, 200))
{
foreach (var fileName in filesList)
{
string filePath = dataDir + fileName;
using (var stream = new FileStream(filePath, FileMode.Open))
{
Layer layer = null;
try
{
layer = new Layer(stream);
image.AddLayer(layer);
}
catch (Exception e)
{
if (layer != null)
{
layer.Dispose();
}
throw e;
}
}
}
image.Save(outputFilePath);
}

تسطيح جميع الطبقات أو مجموعات الطبقات

قد يكون من المفيد إذا كنت لا ترغب في تزويد ملف PSD قابل للتحرير للمستخدمين الخاصين بك. كما يمكنك التعرف من خلال واجهة برمجة التطبيقات إذا تم تسطيح الملف.

تسطيح الطبقات في ملف PSD:

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Flatten whole PSD
string sourceFileName = dataDir + "ThreeRegularLayersSemiTransparent.psd";
string exportPath = dataDir + "ThreeRegularLayersSemiTransparentFlattened.psd";
using (var im = (PsdImage)(Image.Load(sourceFileName)))
{
im.FlattenImage();
im.Save(exportPath);
}
// Merge one layer in another
exportPath = dataDir + "ThreeRegularLayersSemiTransparentFlattenedLayerByLayer.psd";
using (var im = (PsdImage)(Image.Load(sourceFileName)))
{
var bottomLayer = im.Layers[0];
var middleLayer = im.Layers[1];
var topLayer = im.Layers[2];
var layer1 = im.MergeLayers(bottomLayer, middleLayer);
var layer2 = im.MergeLayers(layer1, topLayer);
// Set up merged layers
im.Layers = new Layer[] { layer2 };
im.Save(exportPath);
}