
PSD(Photoshop 文檔)是 Adobe 流行的 Photoshop 應用程序使用的原生圖像文件格式。它通常用於創建徽標、小冊子和其他 PSD 文件包含多個圖層的圖像。在某些情況下,我們可能需要以編程方式操作 PSD 文件。在本文中,我們將學習如何使用 C# 在 PSD 中添加新層。
本文應涵蓋以下主題:
用於在 PSD 中添加新圖層的 C# API
要在 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。
- 接下來,準備要添加的對象,例如矩形。
- 然後,調用 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 添加新層
使用 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 添加新文本層
使用 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);

使用 C# 在 PSD 中從圖像創建新層
獲得免費的臨時許可證
您可以獲得免費的臨時許可證 試用 Aspose.PSD for .NET,沒有評估限制。
結論
在本文中,我們學習瞭如何:
- 創建一個新的 PSD 圖像;
- 在 PSD 圖像中創建一個新的常規層和一個文本層;
- 使用 C# 在 PSD 中插入 PNG 或 JPG 圖像作為新層。
此外,您可以使用 文檔 了解更多關於 Aspose.PSD for .NET 的信息,並探索 API 支持的不同功能。如有任何歧義,請隨時在我們的 論壇 上與我們聯繫。