Добавление новых слоев в PSD с помощью C#

PSD (Photoshop Document) — собственный формат файла изображения, используемый популярным приложением Adobe Photoshop. Он обычно используется для создания логотипов, брошюр и других изображений, где файл PSD содержит несколько слоев. В некоторых случаях нам может понадобиться программно манипулировать файлами PSD. В этой статье мы узнаем, как добавить новый слой в PSD с помощью C#.

В этой статье должны быть раскрыты следующие темы:

  1. API C# для добавления нового слоя в PSD
  2. Добавить новый слой в PSD
  3. Добавить новый текстовый слой в PSD
  4. Создать слой из изображения в PSD

C# API для добавления нового слоя в PSD

Чтобы создать новый слой в файле PSD, мы будем использовать API Aspose.PSD для .NET. Он поддерживает создание, редактирование или управление PSD и несколькими другими поддерживаемыми форматами файлов.

Класс PsdImage API позволяет загружать, редактировать и сохранять PSD-файлы. Метод AddRegularLayer() этого класса добавляет новый обычный слой. Принимая во внимание, что метод AddTextLayer(string, Rectangle) добавляет новый текстовый слой в PSD. Этот класс также предоставляет метод Save(string), который сохраняет PSD в указанное местоположение файла.

Пожалуйста, загрузите DLL API или установите его с помощью NuGet.

PM> Install-Package Aspose.PSD

Добавить новый слой в PSD с помощью C#

Мы можем добавить новый слой в файл PSD, выполнив следующие шаги:

  1. Во-первых, загрузите файл PSD как PsdImage, используя класс Image.
  2. Затем подготовьте объект для добавления, например Rectangle.
  3. Затем вызовите метод AddRegularLayer().
  4. При необходимости задайте положение слоя, например «Сверху», «Слева», «Справа» и «Снизу».
  5. После этого привяжите объект к слою с помощью метода SaveArgb32Pixels().
  6. Наконец, сохраните выходной файл с помощью метода Save().

В следующем примере кода показано, как добавить новый слой в PSD-файл на C#.

// В этом примере кода показано, как создавать новые слои в файле изображения PSD.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\OneLayerEdited.psd";

// Загрузите существующий PSD
var im = (PsdImage)Image.Load(sourceFileName);

// Подготовка двух массивов int
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;
}

// Добавить слой 1
var layer1 = im.AddRegularLayer();
layer1.Left = 25;
layer1.Top = 25;
layer1.Right = 75;
layer1.Bottom = 75;
layer1.SaveArgb32Pixels(rect1, data1);

// Добавить слой 2
var layer2 = im.AddRegularLayer();
layer2.Left = 25;
layer2.Top = 150;
layer2.Right = 125;
layer2.Bottom = 175;
layer2.SaveArgb32Pixels(rect2, data2);

// Сохранить PSD
im.Save(exportPath, new PsdOptions());
Добавить-новый-слой-в-PSD-программно-используя-CSharp

Программно добавить новый слой в PSD с помощью C#

Добавить новый текстовый слой в PSD с помощью C#

Мы можем добавить новый текстовый слой в файл PSD, выполнив следующие шаги:

  1. Во-первых, загрузите файл PSD как PsdImage, используя класс Image.
  2. Затем определите прямоугольник.
  3. Затем вызовите метод AddTexLayer(). Он принимает текстовый ввод и прямоугольный объект в качестве аргументов.
  4. После этого установите положение слоя, например, сверху, слева, справа и снизу.
  5. Наконец, сохраните выходной файл с помощью метода Save().

В следующем примере кода показано, как добавить новый текстовый слой в PSD-файл на C#.

// В этом примере кода показано, как создавать новые слои в файле изображения PSD.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\TextLayer.psd";

// Загрузите существующий PSD
var im = (PsdImage)Image.Load(sourceFileName);

// Добавьте текстовый слой
var layer1 = im.AddTextLayer("Hello", new Rectangle(0, 0, 120, 50));
layer1.Left = 10;
layer1.Top = 25;

// Сохранить PSD
im.Save(exportPath, new PsdOptions());
Добавить-новый-текстовый-слой-в-PSD-используя-CSharp

Программно добавить новый текстовый слой в PSD с помощью C#

Создайте новый слой из изображения в PSD с помощью C#

Мы также можем добавить новый слой из изображения PNG или JPG в файл PSD, выполнив следующие шаги:

  1. Во-первых, загрузите файл PSD как PsdImage, используя класс Image.
  2. Затем откройте файл изображения PNG в потоке.
  3. Затем создайте экземпляр класса Layer с объектом потока.
  4. После этого вызовите метод AddLayer(). Он принимает объект Layer в качестве аргумента.
  5. Наконец, сохраните выходной файл с помощью метода Save().

В следующем примере кода показано, как добавить новый слой из изображения PNG в PSD-файл на C#.

// В этом примере кода показано, как создать новый слой из изображения PNG в файле изображения PSD.
string outputFilePath = @"C:\Files\PSD\PsdResult.psd";

// Создайте новое PSD-изображение
var image = new PsdImage(200, 200);

// Загрузите изображение в формате PNG
string filePath = @"C:\Files\PSD\aspose_logo.png";
var stream = new FileStream(filePath, FileMode.Open);

Layer layer = null;
try
{
    // Добавить слой в PSD
    layer = new Layer(stream);
    image.AddLayer(layer);
}
catch (Exception e)
{
    if (layer != null)
    {
        layer.Dispose();
    }
    throw e;
}

// Сохранить PSD
image.Save(outputFilePath);
Создать новый слой из изображения в PSD с помощью CSharp

Создайте новый слой из изображения в PSD с помощью C #

Получить бесплатную временную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать Aspose.PSD для .NET без ограничений пробной версии.

Вывод

В этой статье мы узнали, как:

  • создать новое PSD-изображение;
  • создайте новый обычный слой и текстовый слой в изображении PSD;
  • вставьте изображение PNG или JPG в качестве нового слоя в PSD с помощью C#.

Кроме того, вы можете узнать больше об Aspose.PSD для .NET с помощью документации и изучить различные функции, поддерживаемые API. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме.

Смотрите также