لایه PSD
مرور
لایه PSD Adobe® Photoshop® یکی از بهترین مفاهیم در پردازش گرافیکی است. لایهها اطلاعاتی در مورد پیکسلها دارند، میتوانند شمارش مختلفی از کانالها داشته باشند.
یکی از مهمترین بخشهای لایه در سند فتوشاپ، منابع لایه است. شما میتوانید لیست کاملی از منابع لایه پشتیبانی شده در PSD را از مستندات ما دریافت کنید.
شما میتوانید رابط کاربری برای مدیریت لایه را در عکس زیر پیدا کنید:
اما Aspose.PSD در مورد مدیریت برنامهای لایه PSD از طریق C# و Java تخصص دارد.
مستندات اضافی میتوانند در این مقاله پیدا شوند: ویرایش تصاویر. تمام ویرایشها میتوانند به پیشنمایش PSD و لایه پرداخته شوند، اطلاعات بیشتری را در مرجع API تصویری Raster 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); | |
} |