이 기사에서는 C# .NET을 사용하여 Photoshop의 PSD 파일에서 레이어를 찾고 레이어의 텍스트 또는 이미지를 동적으로 업데이트하는 방법을 배웁니다.

PSD은 각 레이어에 텍스트, 이미지, 그래픽 개체 및 기타 지원되는 요소가 포함된 다층 구조로 문서를 저장하기 위해 Adobe Photoshop에서 사용하는 기본 형식입니다. PSD 템플릿이 있고 템플릿 내의 텍스트 및 이미지 레이어를 채워서 여러 결과 이미지를 만들어야 하는 경우가 있을 수 있습니다. 이러한 시나리오의 예는 조직 내에서 직원 카드를 만드는 것입니다. 이 프로세스를 자동화하기 위해 다음을 수행하는 방법을 보여 드리겠습니다.

PSD 레이어를 찾고 업데이트하는 C# 라이브러리

Aspose.PSD for .NET를 사용하면 Adobe Photoshop 또는 Illustrator를 설치하지 않고도 PSD 파일을 만들고 수정할 수 있습니다. API는 C# 또는 VB.NET을 사용하여 PSD 레이어를 동적으로 업데이트해야 하는 시나리오에서 편리할 수 있습니다. NuGet 패키지 관리자를 사용하여 API를 설치하거나 해당 DLL을 수동으로 다운로드하여 참조할 수 있습니다.

C#을 사용하여 PSD 파일에서 텍스트 레이어 찾기 및 업데이트

.NET용 Aspose.PSD를 사용하면 레이어 이름을 사용하여 PSD 파일에서 원하는 레이어를 찾을 수 있습니다. 레이어를 찾으면 해당 콘텐츠를 업데이트할 수 있습니다. 다음은 PSD 파일에서 텍스트 레이어를 찾고 업데이트하는 단계입니다.

  • PsdImage 클래스의 인스턴스를 생성하고 PSD 파일의 경로로 초기화합니다.
  • PsdImage.Layers 속성을 사용하여 PSD의 레이어에 액세스합니다.
  • 각 레이어의 표시 이름을 일치시켜 원하는 레이어를 TextLayer 개체로 가져옵니다.
  • TextLayer.UpdateText(String) 메서드를 사용하여 텍스트를 업데이트합니다.
  • PsdImage.Save(String) 메서드를 사용하여 업데이트된 이미지를 저장합니다.

다음 코드 샘플은 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 파일에서 레이어 가져오기
	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 레이어를 찾고 해당 이미지를 업데이트하는 단계입니다.

  • PsdImage 클래스의 객체를 생성하여 PSD 파일을 로드합니다.
  • PsdImage.Layers 개체의 PSD 파일에서 레이어를 찾습니다.
  • 레이어에 그리고 싶은 이미지를 Stream 오브젝트에 불러옵니다.
  • 새 Layer 객체를 생성하고 이전 단계에서 생성한 Stream 객체로 초기화합니다.
  • Graphics 클래스의 인스턴스를 생성하고 교체할 레이어로 초기화합니다.
  • Graphics.Clear() 메서드를 사용하여 레이어를 지웁니다.
  • Graphics.DrawImage(Image, Rectangle) 방법을 사용하여 레이어에 이미지를 그립니다.
  • PsdImage.Save(String) 메서드를 사용하여 파일을 저장합니다.

다음 코드 샘플은 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 파일에서 레이어 가져오기
	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 파일에서 레이어를 찾고 해당 텍스트 또는 이미지를 업데이트하는 방법을 보여줍니다. 문서를 사용하여 .NET용 Aspose.PSD에 대해 자세히 알아볼 수 있습니다.

또한보십시오