PSD (Photoshop Document) — собственный формат файла изображения, используемый популярным приложением Adobe Photoshop. Он обычно используется для создания логотипов, брошюр и других изображений, где файл PSD содержит несколько слоев. В некоторых случаях нам может понадобиться программно манипулировать файлами PSD. В этой статье мы узнаем, как добавить новый слой в PSD с помощью C#.
В этой статье должны быть раскрыты следующие темы:
- API C# для добавления нового слоя в PSD
- Добавить новый слой в PSD
- Добавить новый текстовый слой в PSD
- Создать слой из изображения в 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, выполнив следующие шаги:
- Во-первых, загрузите файл PSD как PsdImage, используя класс Image.
- Затем подготовьте объект для добавления, например Rectangle.
- Затем вызовите метод AddRegularLayer().
- При необходимости задайте положение слоя, например «Сверху», «Слева», «Справа» и «Снизу».
- После этого привяжите объект к слою с помощью метода SaveArgb32Pixels().
- Наконец, сохраните выходной файл с помощью метода 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 с помощью C#
Мы можем добавить новый текстовый слой в файл PSD, выполнив следующие шаги:
- Во-первых, загрузите файл PSD как PsdImage, используя класс Image.
- Затем определите прямоугольник.
- Затем вызовите метод AddTexLayer(). Он принимает текстовый ввод и прямоугольный объект в качестве аргументов.
- После этого установите положение слоя, например, сверху, слева, справа и снизу.
- Наконец, сохраните выходной файл с помощью метода 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 с помощью C#
Мы также можем добавить новый слой из изображения PNG или JPG в файл PSD, выполнив следующие шаги:
- Во-первых, загрузите файл PSD как PsdImage, используя класс Image.
- Затем откройте файл изображения PNG в потоке.
- Затем создайте экземпляр класса Layer с объектом потока.
- После этого вызовите метод AddLayer(). Он принимает объект Layer в качестве аргумента.
- Наконец, сохраните выходной файл с помощью метода 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);
Получить бесплатную временную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать Aspose.PSD для .NET без ограничений пробной версии.
Вывод
В этой статье мы узнали, как:
- создать новое PSD-изображение;
- создайте новый обычный слой и текстовый слой в изображении PSD;
- вставьте изображение PNG или JPG в качестве нового слоя в PSD с помощью C#.
Кроме того, вы можете узнать больше об Aspose.PSD для .NET с помощью документации и изучить различные функции, поддерживаемые API. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме.