在本文中,您將了解如何使用 C# .NET 在 Photoshop 的 PSD 文件中動態查找圖層和更新圖層的文本或圖像。

PSD 是 Adobe Photoshop 使用的默認格式,用於將其文檔保存在多層結構中,其中每一層都包含文本、圖像、圖形對象和其他支持的元素。當您有一個 PSD 模板時,可能會出現這種情況,您需要通過在模板中填充文本和圖像層來創建多個結果圖像。這種情況的一個例子是在組織內創建員工卡。為了自動執行此過程,我將向您展示如何:

用於查找和更新 PSD 圖層的 C# 庫

Aspose.PSD for .NET 允許在不安裝 Adobe Photoshop 或 Illustrator 的情況下創建和修改 PSD 文件。在需要使用 C# 或 VB.NET 動態更新 PSD 圖層的場景中,API 可以派上用場。您可以使用 NuGet 包管理器 安裝 API,或手動下載並引用其 DLL

使用 C# 查找和更新 PSD 文件中的文本圖層

Aspose.PSD for .NET 允許您使用圖層名稱在 PSD 文件中找到所需的圖層。找到圖層後,您可以更新其內容。以下是在 PSD 文件中查找和更新文本圖層的步驟。

以下代碼示例展示瞭如何使用 C# 查找和更新 PSD 文件中的文本層。

// 加載 PSD 文件
using (PsdImage image = (PsdImage)Image.Load(@"template.psd"))
{
	// 使用圖層名稱查找圖層
	var layerToUpdateText = (TextLayer)FindLayer("Name", image);
	// 更新文本的簡單方法
	layerToUpdateText.UpdateText("John Doe");
	// 保存更新後的 PSD 文件
	image.Save("updated-psd.psd");
}
//------------------FindLayer()------------
public static Layer FindLayer(string layerName, PsdImage image)
{
	// 獲取 PSD 文件中的 aa 圖層
	var layers = image.Layers;
	// 找到所需的圖層
	foreach (var layer in layers)
	{
		// 匹配圖層名稱
		if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
		{
			return layer;
		}
	}
	return null;
}

下面是我們在此示例中使用的輸入 PSD 文件的屏幕截圖:

使用 C# 在 PSD 中查找圖層

以下是生成的具有更新文本層的 PSD 文件:

使用 C# 更新 PSD 中的文本層

使用 C# 在 PSD 文件中查找和更新圖像層

為了處理圖像等圖形對象,Aspose.PSD for .NET 公開了 Graphics 類。此類用於清除或繪製 PSD 圖層內的圖形。以下是查找 PSD 圖層並更新其圖像的步驟。

以下代碼示例展示瞭如何使用 C# 在 PSD 文件中查找和更新圖像層。

// 加載 PSD 文件
using (PsdImage image = (PsdImage)Image.Load(@"updated-psd.psd"))
{
	// 讓我們找到我們要替換的圖層
	var layerToReplace = FindLayer("ProfilePicture", image);

	using (Stream stream = new FileStream(@"avatar.png", FileMode.Open))
	{
		var newLayer = new Layer(stream);
		// 在舊層上繪製新層
		var graphic = new Graphics(layerToReplace);
		graphic.Clear(Color.Empty);
		graphic.DrawImage(newLayer, new Rectangle(new Point(), new Size(layerToReplace.Width, layerToReplace.Height)));
	}
	// 保存更新後的 PSD 文件
	image.Save("updated-psd2.psd");
}
//------------------FindLayer()------------
public static Layer FindLayer(string layerName, PsdImage image)
{
	// 獲取 PSD 文件中的 aa 圖層
	var layers = image.Layers;
	// 找到所需的圖層
	foreach (var layer in layers)
	{
		// 匹配圖層名稱
		if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
		{
			return layer;
		}
	}
	return null;
}

以下是使用上述代碼更新圖像層後的PSD文件截圖:

使用 C# 更新 PSD 中的圖像層

結論

在本文中,我們了解瞭如何使用 C# 在 Photoshop 文件 (PSD) 中查找和更新圖層。分步指南和代碼示例演示瞭如何在 Photoshop PSD 文件中查找圖層並更新其文本或圖像。您可以使用 文檔 探索更多關於 Aspose.PSD for .NET 的信息。

也可以看看