Thêm các lớp mới trong PSD bằng C#

PSD(Tài liệu Photoshop) là định dạng tệp hình ảnh gốc được Ứng dụng Photoshop phổ biến của Adobe sử dụng. Nó thường được sử dụng để tạo biểu trưng, tài liệu quảng cáo và các hình ảnh khác trong đó tệp PSD chứa nhiều lớp. Trong một số trường hợp nhất định, chúng tôi có thể cần phải thao tác lập trình các tệp PSD. Trong bài này, chúng ta sẽ học cách thêm một lớp mới trong PSD bằng C#.

Các chủ đề sau sẽ được đề cập trong bài viết này:

  1. API C# để thêm lớp mới trong PSD
  2. Thêm một lớp mới vào PSD
  3. Thêm một lớp văn bản mới vào PSD
  4. Tạo một lớp từ hình ảnh trong PSD

API C# để thêm lớp mới trong PSD

Để tạo một lớp mới trong tệp PSD, chúng tôi sẽ sử dụng API Aspose.PSD cho .NET. Nó hỗ trợ tạo, chỉnh sửa hoặc thao tác PSD và một số định dạng tệp được hỗ trợ khác.

Lớp PsdImage của API cho phép tải, chỉnh sửa và lưu các tệp PSD. Phương thức AddRegularLayer() của lớp này thêm một lớp thông thường mới. Trong khi đó, phương thức AddTextLayer (string, Rectangle) thêm một lớp Văn bản mới vào PSD. Lớp này cũng cung cấp phương thức Save (string) để lưu PSD vào vị trí tệp được chỉ định.

Vui lòng tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.PSD

Thêm Lớp mới vào PSD bằng C#

Chúng ta có thể thêm một lớp mới vào tệp PSD bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tải tệp PSD dưới dạng PsdImage bằng cách sử dụng lớp Hình ảnh.
  2. Tiếp theo, chuẩn bị một đối tượng để thêm vào chẳng hạn như Rectangle.
  3. Sau đó, gọi phương thức AddRegularLayer().
  4. Theo tùy chọn, đặt vị trí lớp như Trên, Trái, Phải và Dưới.
  5. Sau đó, gán đối tượng vào lớp bằng phương thức SaveArgb32Pixels().
  6. Cuối cùng, lưu tệp đầu ra bằng phương thức Save().

Mẫu mã sau đây cho thấy cách thêm một lớp mới vào tệp PSD trong C#.

// Ví dụ mã này trình bày cách tạo các lớp mới trong tệp ảnh PSD.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\OneLayerEdited.psd";

// Tải một PSD hiện có
var im = (PsdImage)Image.Load(sourceFileName);

// Chuẩn bị hai mảng int
var data1 = new int[2500];
var data2 = new int[2500];

// Xác định hình chữ nhật
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;
}

// Thêm lớp 1
var layer1 = im.AddRegularLayer();
layer1.Left = 25;
layer1.Top = 25;
layer1.Right = 75;
layer1.Bottom = 75;
layer1.SaveArgb32Pixels(rect1, data1);

// Thêm lớp 2
var layer2 = im.AddRegularLayer();
layer2.Left = 25;
layer2.Top = 150;
layer2.Right = 125;
layer2.Bottom = 175;
layer2.SaveArgb32Pixels(rect2, data2);

// Lưu PSD
im.Save(exportPath, new PsdOptions());
Thêm-lớp-mới-sang-PSD-có lập trình-sử dụng-CSharp

Thêm Lớp mới vào PSD Lập trình bằng C#

Thêm lớp văn bản mới vào PSD bằng C#

Chúng ta có thể thêm một lớp văn bản mới vào tệp PSD bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tải tệp PSD dưới dạng PsdImage bằng cách sử dụng lớp Hình ảnh.
  2. Tiếp theo, xác định một hình chữ nhật.
  3. Sau đó, gọi phương thức AddTexLayer(). Nó nhận đầu vào văn bản và một đối tượng hình chữ nhật làm đối số.
  4. Sau đó, đặt vị trí lớp như Trên, Trái, Phải và Dưới.
  5. Cuối cùng, lưu tệp đầu ra bằng phương thức Save().

Mẫu mã sau đây cho thấy cách thêm một lớp văn bản mới vào tệp PSD trong C#.

// Ví dụ mã này trình bày cách tạo các lớp mới trong tệp ảnh PSD.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\TextLayer.psd";

// Tải một PSD hiện có
var im = (PsdImage)Image.Load(sourceFileName);

// Thêm một lớp văn bản
var layer1 = im.AddTextLayer("Hello", new Rectangle(0, 0, 120, 50));
layer1.Left = 10;
layer1.Top = 25;

// Lưu PSD
im.Save(exportPath, new PsdOptions());
Add-New-Text-Layer-to-PSD-using-CSharp

Thêm Lớp văn bản mới vào PSD Lập trình bằng C#

Tạo lớp mới từ hình ảnh trong PSD bằng C#

Chúng tôi cũng có thể thêm một lớp mới từ hình ảnh PNG hoặc JPG vào tệp PSD bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tải tệp PSD dưới dạng PsdImage bằng cách sử dụng lớp Hình ảnh.
  2. Tiếp theo, mở tệp hình ảnh PNG trong một luồng.
  3. Sau đó, tạo một thể hiện của lớp Layer với đối tượng stream.
  4. Sau đó, gọi phương thức AddLayer(). Nó lấy đối tượng Layer làm đối số.
  5. Cuối cùng, lưu tệp đầu ra bằng phương thức Save().

Mẫu mã sau đây cho thấy cách thêm một lớp mới từ ảnh PNG vào tệp PSD trong C#.

// Ví dụ mã này trình bày cách tạo lớp mới từ hình ảnh PNG trong tệp hình ảnh PSD.
string outputFilePath = @"C:\Files\PSD\PsdResult.psd";

// Tạo một hình ảnh PSD mới
var image = new PsdImage(200, 200);

// Tải hình ảnh PNG
string filePath = @"C:\Files\PSD\aspose_logo.png";
var stream = new FileStream(filePath, FileMode.Open);

Layer layer = null;
try
{
    // Thêm lớp vào PSD
    layer = new Layer(stream);
    image.AddLayer(layer);
}
catch (Exception e)
{
    if (layer != null)
    {
        layer.Dispose();
    }
    throw e;
}

// Lưu PSD
image.Save(outputFilePath);
Tạo-Lớp-mới-từ-Hình-ảnh-trong-PSD-using-CSharp

Tạo lớp mới từ hình ảnh trong PSD bằng C#

Nhận Giấy phép Tạm thời Miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử Aspose.PSD cho .NET mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, chúng tôi đã học cách:

  • tạo một hình ảnh PSD mới;
  • tạo một lớp thông thường mới và một lớp văn bản trong một hình ảnh PSD;
  • chèn hình ảnh PNG hoặc JPG làm lớp mới trong PSD bằng C#.

Bên cạnh đó, bạn có thể tìm hiểu thêm về Aspose.PSD cho .NET bằng cách sử dụng tài liệu và khám phá các tính năng khác nhau được API hỗ trợ. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn của chúng tôi.

Xem thêm