Tổng quan

Lớp PSD của Adobe® Photoshop® là một trong những khái niệm tốt nhất trong xử lý đồ họa. Các lớp chứa thông tin về pixel, có thể có số lượng kênh khác nhau.

Một trong những phần quan trọng nhất của Lớp trong Tài liệu Photoshop là Tài nguyên Lớp. Bạn có thể xem danh sách đầy đủ các Tài nguyên Lớp được hỗ trợ trong PSD từ tài liệu của chúng tôi.

Bạn có thể tìm giao diện người dùng để điều chỉnh lớp trên ảnh chụp màn hình sau:

to_do:image_alt_text

Nhưng Aspose.PSD chuyên vào việc thay đổi Lớp PSD thông qua C#Java.

Tài liệu bổ sung có thể được tìm thấy trong bài viết này: Chỉnh sửa hình ảnh. Tất cả các chỉnh sửa có thể được xử lý để Xem trước PSD và Lớp, bạn có thể tìm thông tin thêm trong Aspose.PSD Tài liệu API Ảnh rập.

API Lớp PSD có sẵn

Ví dụ về Chỉnh sửa Lớp thông qua C#

Thêm Lớp mới

Nếu bạn muốn thêm một Lớp trống vào Tệp PSD đã mở bạn có thể sử dụng đoạn mã sau.

Thêm Lớp mới vào Tệp PSD bằng 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());
}

Thêm Lớp mới từ các tệp Jpeg, Png, Gif, Ai, Tiff, Bmp

Các tệp của bất kỳ định dạng được hỗ trợ nào có thể được thêm vào như một lớp mới vào hình ảnh của bạn. Nhưng bạn không thể nạp nó trực tiếp.

Bạn có thể sử dụng mã dưới đây để thêm Lớp PSD mới từ tệp định dạng được hỗ trợ từ dòng dữ liệu

// 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);
}

Trộn tất cả các lớp hoặc nhóm lớp

Điều này có thể hữu ích nếu bạn không muốn cung cấp một tệp PSD có thể chỉnh sửa cho người dùng của bạn. Ngoài ra, bạn có thể xác định thông qua API liệu tệp có được trộn không.

Trộn Lớp của Tệp 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);
}