使用 C# 在 PSD 中添加新图层

PSD(Photoshop 文档)是 Adobe 流行的 Photoshop 应用程序使用的原生图像文件格式。它通常用于创建 PSD 文件包含多个图层的徽标、小册子和其他图像。在某些情况下,我们可能需要以编程方式操作 PSD 文件。在本文中,我们将学习如何使用 C# 在 PSD 中添加新图层。

本文将涵盖以下主题:

  1. 在 PSD 中添加新层的 C# API
  2. 向 PSD 添加新图层
  3. 在 PSD 中添加新的文本图层
  4. 从 PSD 中的图像创建图层

C# API 在 PSD 中添加新层

要在 PSD 文件中创建新层,我们将使用 Aspose.PSD for .NET API。它支持创建、编辑或操作 PSD 和其他几种支持的文件格式

API 的 PsdImage 类允许加载、编辑和保存 PSD 文件。该类的 AddRegularLayer() 方法添加了一个新的常规层。而 AddTextLayer(string, Rectangle) 方法将一个新的文本图层添加到 PSD。此类还提供了 Save(string) 方法,可将 PSD 保存到指定的文件位置。

下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.PSD

使用 C# 将新图层添加到 PSD

我们可以按照以下步骤将新图层添加到 PSD 文件中:

  1. 首先,使用 Image 类将 PSD 文件加载为 PsdImage。
  2. 接下来,准备一个要添加的对象,例如 Rectangle。
  3. 然后,调用 AddRegularLayer() 方法。
  4. (可选)设置图层位置,例如顶部、左侧、右侧和底部。
  5. 之后,使用 SaveArgb32Pixels() 方法将对象分配给图层。
  6. 最后,使用 Save() 方法保存输出文件。

以下代码示例展示了如何在 C# 中向 PSD 文件添加新图层。

// 此代码示例演示如何在 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());
以编程方式使用 CSharp 将新层添加到 PSD

使用 C# 以编程方式将新图层添加到 PSD

使用 C# 将新文本图层添加到 PSD

我们可以按照以下步骤将新的文本图层添加到 PSD 文件中:

  1. 首先,使用 Image 类将 PSD 文件加载为 PsdImage。
  2. 接下来,定义一个矩形。
  3. 然后,调用 AddTexLayer() 方法。它接受文本输入和一个矩形对象作为参数。
  4. 之后,设置图层位置,例如上、左、右和下。
  5. 最后,使用 Save() 方法保存输出文件。

以下代码示例展示了如何在 C# 中向 PSD 文件添加新的文本层。

// 此代码示例演示如何在 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());
使用 CSharp 将新文本层添加到 PSD

使用 C# 以编程方式将新文本图层添加到 PSD

使用 C# 从 PSD 中的图像创建新图层

我们还可以按照以下步骤将 PNG 或 JPG 图像中的新图层添加到 PSD 文件中:

  1. 首先,使用 Image 类将 PSD 文件加载为 PsdImage。
  2. 接下来,在流中打开 PNG 图像文件。
  3. 然后,使用流对象创建 Layer 类的实例。
  4. 之后,调用 AddLayer() 方法。它将 Layer 对象作为参数。
  5. 最后,使用 Save() 方法保存输出文件。

以下代码示例展示了如何在 C# 中将新图层从 PNG 图像添加到 PSD 文件。

// 此代码示例演示如何从 PSD 图像文件中的 PNG 图像创建新图层。
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);
Create-New-Layer-from-Image-in-PSD-using-CSharp

使用 C# 从 PSD 中的图像创建新图层

获得免费临时许可证

您可以获得免费的临时许可证 试用 Aspose.PSD for .NET,而不受评估限制。

结论

在本文中,我们学习了如何:

  • 创建一个新的PSD图像;
  • 在 PSD 图像中创建一个新的常规图层和一个文本图层;
  • 使用 C# 在 PSD 中插入 PNG 或 JPG 图像作为新层。

此外,您可以使用 文档 了解更多关于 Aspose.PSD for .NET 的信息,并探索 API 支持的不同功能。如有任何歧义,请随时在我们的 论坛 上与我们联系。

也可以看看