Z tego artykułu dowiesz się, jak dynamicznie wyszukiwać warstwy i aktualizować tekst lub obraz warstwy w plikach PSD programu Photoshop przy użyciu języka C# .NET.

PSD to domyślny format używany przez program Adobe Photoshop do zapisywania dokumentów w strukturze wielowarstwowej, w której każda warstwa zawiera tekst, obrazy, obiekty graficzne i inne obsługiwane elementy. Może się zdarzyć, że masz szablon PSD i musisz utworzyć kilka wynikowych obrazów, wypełniając warstwy tekstu i obrazu w szablonie. Przykładem takiego scenariusza jest tworzenie kart pracowniczych w organizacji. Aby zautomatyzować ten proces, pokażę Ci, jak:

Biblioteka C# do znajdowania i aktualizowania warstw PSD

Aspose.PSD for .NET umożliwia tworzenie i modyfikowanie plików PSD bez instalowania Adobe Photoshop lub Illustrator. Interfejs API może być przydatny w scenariuszu, w którym trzeba dynamicznie aktualizować warstwy PSD przy użyciu języka C# lub VB.NET. Interfejs API można zainstalować za pomocą Menedżera pakietów NuGet lub ręcznie pobrać i odwołać się do jego bibliotek DLL.

Znajdź i zaktualizuj warstwy tekstowe w plikach PSD za pomocą C#

Aspose.PSD for .NET pozwala znaleźć żądaną warstwę w plikach PSD za pomocą nazwy warstwy. Po znalezieniu warstwy możesz zaktualizować jej zawartość. Poniżej przedstawiono kroki, aby znaleźć i zaktualizować warstwę tekstową w pliku PSD.

Poniższy przykładowy kod pokazuje, jak znaleźć i zaktualizować warstwę tekstową w pliku PSD przy użyciu języka C#.

// Załaduj plik PSD
using (PsdImage image = (PsdImage)Image.Load(@"template.psd"))
{
	// Znajdź warstwę, używając nazwy warstwy
	var layerToUpdateText = (TextLayer)FindLayer("Name", image);
	// Prosty sposób na aktualizację tekstu
	layerToUpdateText.UpdateText("John Doe");
	// Zapisz zaktualizowany plik PSD
	image.Save("updated-psd.psd");
}
//-------------------FindLayer()-------------
public static Layer FindLayer(string layerName, PsdImage image)
{
	// Uzyskaj warstwy aa w pliku PSD
	var layers = image.Layers;
	// Znajdź żądaną warstwę
	foreach (var layer in layers)
	{
		// Dopasuj nazwę warstwy
		if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
		{
			return layer;
		}
	}
	return null;
}

Poniżej znajduje się zrzut ekranu wejściowego pliku PSD, którego użyliśmy w tym przykładzie:

Znajdź warstwę w PSD za pomocą C#

Poniżej znajduje się wynikowy plik PSD ze zaktualizowaną warstwą tekstową:

Zaktualizuj warstwę tekstową w PSD za pomocą C#

Znajdź i zaktualizuj warstwy obrazu w plikach PSD za pomocą C#

Aby poradzić sobie z obiektami graficznymi, takimi jak obrazy, Aspose.PSD for .NET udostępnia klasę Graphics. Ta klasa służy do czyszczenia lub rysowania grafiki w warstwach PSD. Poniżej przedstawiono kroki, aby znaleźć warstwę PSD i zaktualizować jej obraz.

Poniższy przykładowy kod pokazuje, jak znaleźć i zaktualizować warstwy obrazu w pliku PSD przy użyciu języka C#.

// Załaduj plik PSD
using (PsdImage image = (PsdImage)Image.Load(@"updated-psd.psd"))
{
	// Znajdźmy warstwę, którą chcemy zastąpić
	var layerToReplace = FindLayer("ProfilePicture", image);

	using (Stream stream = new FileStream(@"avatar.png", FileMode.Open))
	{
		var newLayer = new Layer(stream);
		// Rysowanie nowej warstwy na starej
		var graphic = new Graphics(layerToReplace);
		graphic.Clear(Color.Empty);
		graphic.DrawImage(newLayer, new Rectangle(new Point(), new Size(layerToReplace.Width, layerToReplace.Height)));
	}
	// Zapisz zaktualizowany plik PSD
	image.Save("updated-psd2.psd");
}
//-------------------FindLayer()-------------
public static Layer FindLayer(string layerName, PsdImage image)
{
	// Uzyskaj warstwy aa w pliku PSD
	var layers = image.Layers;
	// Znajdź żądaną warstwę
	foreach (var layer in layers)
	{
		// Dopasuj nazwę warstwy
		if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
		{
			return layer;
		}
	}
	return null;
}

Poniżej znajduje się zrzut ekranu pliku PSD po zaktualizowaniu warstwy obrazu za pomocą wyżej wymienionego kodu:

Zaktualizuj warstwę obrazu w PSD za pomocą C#

Wniosek

W tym artykule zobaczyliśmy, jak znaleźć i zaktualizować warstwy w pliku programu Photoshop (PSD) przy użyciu języka C#. Przewodnik krok po kroku i przykłady kodu pokazują, jak znaleźć warstwy i zaktualizować ich tekst lub obraz w plikach Photoshop PSD. Możesz dowiedzieć się więcej o Aspose.PSD for .NET, korzystając z dokumentacji.

Zobacz też