PSD(Photoshop 文档)是 Adobe 流行的 Photoshop 应用程序使用的原生图像文件格式。它通常用于创建 PSD 文件包含多个图层的徽标、小册子和其他图像。在某些情况下,我们可能需要以编程方式操作 PSD 文件。在本文中,我们将学习如何使用 C# 在 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 文件中:
- 首先,使用 Image 类将 PSD 文件加载为 PsdImage。
- 接下来,准备一个要添加的对象,例如 Rectangle。
- 然后,调用 AddRegularLayer() 方法。
- (可选)设置图层位置,例如顶部、左侧、右侧和底部。
- 之后,使用 SaveArgb32Pixels() 方法将对象分配给图层。
- 最后,使用 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());
使用 C# 将新文本图层添加到 PSD
我们可以按照以下步骤将新的文本图层添加到 PSD 文件中:
- 首先,使用 Image 类将 PSD 文件加载为 PsdImage。
- 接下来,定义一个矩形。
- 然后,调用 AddTexLayer() 方法。它接受文本输入和一个矩形对象作为参数。
- 之后,设置图层位置,例如上、左、右和下。
- 最后,使用 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());
使用 C# 从 PSD 中的图像创建新图层
我们还可以按照以下步骤将 PNG 或 JPG 图像中的新图层添加到 PSD 文件中:
- 首先,使用 Image 类将 PSD 文件加载为 PsdImage。
- 接下来,在流中打开 PNG 图像文件。
- 然后,使用流对象创建 Layer 类的实例。
- 之后,调用 AddLayer() 方法。它将 Layer 对象作为参数。
- 最后,使用 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);
获得免费临时许可证
您可以获得免费的临时许可证 试用 Aspose.PSD for .NET,而不受评估限制。
结论
在本文中,我们学习了如何:
- 创建一个新的PSD图像;
- 在 PSD 图像中创建一个新的常规图层和一个文本图层;
- 使用 C# 在 PSD 中插入 PNG 或 JPG 图像作为新层。
此外,您可以使用 文档 了解更多关于 Aspose.PSD for .NET 的信息,并探索 API 支持的不同功能。如有任何歧义,请随时在我们的 论坛 上与我们联系。