סקירה

שכבת Adobe® Photoshop® PSD היא אחת מהמושגים הטובים ביותר בעיבוד גרפי. בשכבות יש מידע על פיקסלים ויכולות להכיל מספר שונה של ערוצים.

אחת החלקים החשובים ביותר של שכבה במסמך Photoshop הוא משאבי שכבה. תוכל למצוא את רשימת המשאבים של השכבה הנתמכים ב-PSD בתיעוד השלנו.

תוכל למצוא ממשק משתמש לניהול השכבה בתמונת המסך הבאה:

todo:image_alt_text

אך Aspose.PSD מתמחה בניהול פרוגרמטי של שכבת PSD דרך C# ו-Java.

תיעוד נוסף ניתן למציאות במאמר זה: עריכת תמונות. כל העריכה ניתן לעבור על ידי תצוגה מקדימה של PSD ושכבה, תמצא עוד מידע ב-מפתח ה- API לתמונה רסטרית של Aspose.PSD.

API שכבת PSD זמינה

דוגמאות לעריכת שכבה דרך C#

הוספת שכבה חדשה

אם ברצונך להוסיף שכבה ריקה ל-קובץ PSD פתוח תוכל להשתמש בקוד הבא.

הוספת שכבה חדשה לקובץ PSD באמצעות API

// 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 ניתן לעריכה למשתמשים שלך. בנוסף, תוכל לזהות דרך ה- API אם הקובץ הופחת.

הפעלת השכבה של קובץ 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);
}