使用 C# 在 PSD 中添加新圖層

PSD(Photoshop 文檔)是 Adobe 流行的 Photoshop 應用程序使用的原生圖像文件格式。它通常用於創建徽標、小冊子和其他 PSD 文件包含多個圖層的圖像。在某些情況下,我們可能需要以編程方式操作 PSD 文件。在本文中,我們將學習如何使用 C# 在 PSD 中添加新層。

本文應涵蓋以下主題:

  1. 用於在 PSD 中添加新圖層的 C# API
  2. 向 PSD 添加新圖層
  3. 向 PSD 添加新文本層
  4. 在 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 文件添加新圖層:

  1. 首先,使用 Image 類將 PSD 文件加載為 PsdImage。
  2. 接下來,準備要添加的對象,例如矩形。
  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());
添加新層到 PSD-Programmatically-using-CSharp

使用 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);
使用 CSharp 從 PSD 中的圖像創建新圖層

使用 C# 在 PSD 中從圖像創建新層

獲得免費的臨時許可證

您可以獲得免費的臨時許可證 試用 Aspose.PSD for .NET,沒有評估限制。

結論

在本文中,我們學習瞭如何:

  • 創建一個新的 PSD 圖像;
  • 在 PSD 圖像中創建一個新的常規層和一個文本層;
  • 使用 C# 在 PSD 中插入 PNG 或 JPG 圖像作為新層。

此外,您可以使用 文檔 了解更多關於 Aspose.PSD for .NET 的信息,並探索 API 支持的不同功能。如有任何歧義,請隨時在我們的 論壇 上與我們聯繫。

也可以看看