Thêm lớp màu trong photoshop

Hình ảnh là một cách rất hữu ích để phản ánh thông tin. Các tệp định dạng PSD được sử dụng để tạo hình ảnh. Tuy nhiên, có thể xảy ra các tình huống như chỉnh sửa nhiều tệp Photoshop trên cùng một dòng. Chẳng hạn, một ứng dụng xử lý ảnh có thể cần thêm một lớp trong nhiều tài liệu Photoshop, cùng với các thao tác khác. Aspose.PSD cho .NET API cung cấp nhiều tính năng để hoạt động với PSD, PSB, AI và nhiều định dạng tệp khác. Hãy để chúng tôi khám phá các trường hợp sử dụng sau đây liên quan đến việc thêm một lớp trong tệp PSD:

Thêm lớp điền vào thời gian chạy trong Tài liệu Photoshop bằng C#

Aspose.PSD cho .NET API hỗ trợ tạo lớp lấp đầy trong tệp PSD. Bạn không nhất thiết phải tải lớp từ một tệp hiện có. Chỉ cần làm theo các bước dưới đây để thêm một lớp lấp đầy trong thời gian chạy trong tệp PSD:

  1. Khởi tạo một thể hiện của lớp PsdImage với kích thước trang
  2. Tạo một thể hiện của lớp FillLayer
  3. Đặt tên hiển thị cho lớp
  4. Thêm lớp vào hình ảnh

Đoạn mã sau cho biết cách thêm lớp màu trong Photoshop bằng C#:

string outputFilePath = Path.Combine(dataDir, "output.psd");

using (var image = new PsdImage(100, 100))
{
    FillLayer colorFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Color);
    colorFillLayer.DisplayName = "Color Fill Layer";
    image.AddLayer(colorFillLayer);

    FillLayer gradientFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Gradient);
    gradientFillLayer.DisplayName = "Gradient Fill Layer";
    image.AddLayer(gradientFillLayer);

    FillLayer patternFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Pattern);
    patternFillLayer.DisplayName = "Pattern Fill Layer";
    patternFillLayer.Opacity = 50;
    image.AddLayer(patternFillLayer);

    image.Save(outputFilePath);
}

Đoạn mã này sẽ tạo một tệp PSD có kích thước được chỉ định trong đó ảnh chụp màn hình bên dưới đang hiển thị tên của ba lớp nền chính xác như được đặt bởi mã C# ở trên:

Thêm lớp trong Photoshop

Thêm lớp điền hiện có trong tệp PSD bằng C#

Chúng ta đã học về cách tạo và thêm các lớp tô màu mới. Hãy để chúng tôi kiểm tra cách thêm lớp từ tệp Photoshop hiện có. Sau đây là các khả năng thêm các lớp tô hiện có:

i) Thêm một Lớp Tô màu với Tô mẫu bằng C#

Một mẫu tô có thể có một hình ảnh, đường hoặc bóng để lấp đầy khu vực. Bạn cần làm theo các bước bên dưới để thêm một lớp với Patten Fill in a PSD image:

  1. Tải tệp PSD nguồn
  2. Lặp lại qua tất cả các lớp và kiểm tra FillLayer
  3. Đặt các cài đặt khác nhau cho lớp
  4. Chỉnh sửa lớp điền
  5. Lưu hình ảnh

Đoạn mã dưới đây cho thấy cách thêm lớp tô màu bằng Tô mẫu bằng C#:

// Thêm hỗ trợ của các lớp Điền: Hoa văn
string sourceFileName = dataDir + "PatternFillLayer.psd";
string exportPath = dataDir + "PatternFillLayer_Edited.psd";
double tolerance = 0.0001;
var im = (PsdImage)Image.Load(sourceFileName);
using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            FillLayer fillLayer = (FillLayer)layer;
            PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings;
            if (fillSettings.HorizontalOffset != -46 ||
                fillSettings.VerticalOffset != -45 ||
                fillSettings.PatternId != "a6818df2-7532-494e-9615-8fdd6b7f38e5" ||
                fillSettings.PatternName != "$$$/Presets/Patterns/OpticalSquares=Optical Squares" ||
                fillSettings.AlignWithLayer != true ||
                fillSettings.Linked != true ||
                fillSettings.PatternHeight != 64 ||
                fillSettings.PatternWidth != 64 ||
                fillSettings.PatternData.Length != 4096 ||
                Math.Abs(fillSettings.Scale - 50) > tolerance)
            {
                throw new Exception("PSD Image was read wrong");
            }
            // chỉnh sửa 
            fillSettings.Scale = 300;
            fillSettings.HorizontalOffset = 2;
            fillSettings.VerticalOffset = -20;
            fillSettings.PatternData = new int[]
            {
           Color.Red.ToArgb(), Color.Blue.ToArgb(),  Color.Blue.ToArgb(),
           Color.Blue.ToArgb(), Color.Red.ToArgb(),  Color.Blue.ToArgb(),
           Color.Blue.ToArgb(), Color.Blue.ToArgb(),  Color.Red.ToArgb()
            };
            fillSettings.PatternHeight = 3;
            fillSettings.PatternWidth = 3;
            fillSettings.AlignWithLayer = false;
            fillSettings.Linked = false;
            fillSettings.PatternId = Guid.NewGuid().ToString();
            fillLayer.Update();
            break;
        }
    }
    im.Save(exportPath);
}

ii) Thêm một lớp màu với Gradient Fill bằng C#

Bạn cũng có thể sử dụng Gradient fill để tô một lớp trong Tài liệu Photoshop. Aspose.PSD cho .NET API hỗ trợ các kiểu tô Gradient sau:

  • tuyến tính
  • Kim cương
  • Xuyên tâm
  • phản ánh
  • Góc

Dưới đây là các bước để thêm một lớp có màu tô chuyển sắc:

Đoạn mã bên dưới dựa trên các bước này và cho biết cách thêm lớp GradientFill trong tài liệu Photoshop bằng C#:

string fileName = dataDir + "FillLayerGradient.psd";
GradientType[] gradientTypes = new[]
{
    GradientType.Linear, GradientType.Radial, GradientType.Angle, GradientType.Reflected, GradientType.Diamond
};
using (var image = Image.Load(fileName))
{
    PsdImage psdImage = (PsdImage)image;
    FillLayer fillLayer = (FillLayer)psdImage.Layers[0];
    GradientFillSettings fillSettings = (GradientFillSettings)fillLayer.FillSettings;
    foreach (var gradientType in gradientTypes)
    {
        fillSettings.GradientType = gradientType;
        fillLayer.Update();
        psdImage.Save(fileName + "_" + gradientType.ToString() + ".png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
    }
}

Đoạn mã này sẽ tạo ra năm tệp khác nhau, mỗi tệp có một loại Gradient khác nhau trong lớp của tệp PSD.

iii) Thêm một lớp tô màu với Tô màu bằng C#

Bạn có thể thêm một lớp với Tô màu trong Tài liệu Photoshop, một tệp PSD. Thực hiện theo các bước bên dưới để thêm hoặc tạo Lớp Tô màu với Tô màu:

  1. Tải hình ảnh PSD nguồn
  2. Kiểm tra tất cả các lớp và tìm FillLayer
  3. Đọc cài đặt điền của lớp
  4. Đặt màu tô và cập nhật lớp
  5. Lưu hình ảnh PSD

Đoạn mã bên dưới dựa trên các bước đã nói ở trên cho biết cách thêm lớp tô màu trong Tài liệu Photoshop bằng C#:

// Để biết các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-psd/Aspose.PSD-for-.NET

string sourceFileName = dataDir + "ColorFillLayer.psd";
string exportPath = dataDir + "ColorFillLayer_output.psd";

var im = (PsdImage)Image.Load(sourceFileName);

using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            var fillLayer = (FillLayer)layer;

            if (fillLayer.FillSettings.FillType != FillType.Color)
            {
                throw new Exception("Wrong Fill Layer");
            }

            var settings = (IColorFillSettings)fillLayer.FillSettings;

            settings.Color = Color.Red;
            fillLayer.Update();
            im.Save(exportPath);
            break;
        }
    }
}

Sự kết luận

Trong bài viết này, bạn đã khám phá một vài trong số rất nhiều khả năng để thêm một lớp lấp đầy trong các tệp PSD. Bạn đã học cách thêm một lớp từ đầu, cũng như cách thêm một lớp từ các tệp PSD hiện có. Các loại lớp tô Gradient khác nhau cũng được giải quyết cùng với các ví dụ. Có nhiều tính năng thú vị khác được cung cấp bởi API Aspose.PSD cho .NET. Vui lòng liên hệ với chúng tôi qua Diễn đàn hỗ trợ miễn phí trong trường hợp có bất kỳ thắc mắc nào.

Xem thêm