클리핑 경로는 표시되어야 하는 이미지의 일부를 선택하는 데 사용되는 닫힌 벡터 경로입니다. 클리핑 패스가 생성되면 클리핑 패스 외부의 이미지 부분이 투명해지거나 보이지 않게 됩니다. Adobe Photoshop에서 클리핑 패스 기술은 이미지와 사진에서 배경을 제거하는 데 가장 자주 사용됩니다. 이 기사에서는 C#을 사용하여 프로그래밍 방식으로 TIFF 이미지에서 클리핑 경로를 만드는 방법을 배웁니다. 또한 클리핑 패스와 함께 TIFF 이미지를 PSD 형식으로 내보내는 방법을 알게 됩니다.
TIFF에서 클리핑 경로 생성을 위한 .NET API
Aspose.Imaging for .NET은 광범위한 이미지 형식을 처리하고 작업할 수 있는 잘 알려진 이미지 처리 API입니다. 또한 API를 사용하면 프로그래밍 방식으로 TIFF에서 클리핑 경로를 만들고 몇 줄의 코드로 TIFF에서 PSD 이미지로 클리핑 경로를 전송할 수 있습니다. NuGet을 사용하여 .NET 애플리케이션 내에 API를 설치하거나 여기에서 해당 DLL을 다운로드할 수 있습니다.
C#을 사용하여 TIFF 이미지에서 클리핑 경로 만들기
TIFF 이미지에서 클리핑 경로를 생성하려면 TXT 파일에서 경로 포인트를 정의해야 합니다. 점을 수동으로 만들거나 Photoshop의 펜 도구를 사용할 수 있습니다. 다음은 아래 예에서 사용할 클리핑 경로의 베지어 포인트가 포함된 샘플 TXT 파일입니다.
경로 포인트를 만든 후에는 TIFF 이미지의 경로 리소스에 삽입할 수 있습니다. 아래는 예제에서 사용되는 대상 TIFF 이미지입니다.
다음 코드 샘플은 Tiff 이미지에서 클리핑 패스를 만드는 방법을 보여줍니다.
static void Main()
{
using (var image = (TiffImage)Image.Load(@"d:\Data\SampleNoPaths.tif"))
{
image.ActiveFrame.PathResources = new List<PathResource> { new PathResource
{
BlockId = 2000, // Block Id according to Photoshop specification
Name = "My Path", // Path name
Records = CreateRecords(LoadPathPoints(@"d:\Data\PathPoints.txt")) // Create path records using coordinates
}};
image.Save(@"d:\SampleWithPaths.tif");
}
}
private static float[] LoadPathPoints(string filePath)
{
return File.ReadAllText(filePath)
.Split(new[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries)
.Select(float.Parse)
.ToArray();
}
private static List<VectorPathRecord> CreateRecords(params float[] coordinates)
{
var records = CreateBezierRecords(coordinates); // Create Bezier records using coordinates
records.Insert(0, new LengthRecord // LengthRecord required by Photoshop specification
{
IsOpen = false, // Lets create closed path
RecordCount = (ushort)records.Count // Record count in the path
});
return records;
}
private static List<VectorPathRecord> CreateBezierRecords(float[] coordinates)
{
return CoordinatesToPoints(coordinates)
.Select(CreateBezierRecord)
.ToList();
}
private static IEnumerable<PointF> CoordinatesToPoints(float[] coordinates)
{
for (var index = 0; index < coordinates.Length; index += 2)
yield return new PointF(coordinates[index], coordinates[index + 1]);
}
private static VectorPathRecord CreateBezierRecord(PointF point)
{
return new BezierKnotRecord { PathPoints = new[] { point, point, point } };
}
다음은 Photoshop에서 클리핑 경로와 함께 결과 TIFF 이미지의 스크린샷입니다.
C#을 사용하여 클리핑 경로가 있는 TIFF를 PSD로 내보내기
Photoshop에서 추가 처리를 위해 클리핑 경로가 있는 TIFF 이미지를 PSD 이미지로 내보낼 수도 있습니다. 이것은 몇 줄의 코드로 수행할 수 있습니다.
- Image.Load(String) 메서드를 사용하여 TIFF 이미지를 로드합니다.
- Image.Save(String, PsdOptions) 메서드를 사용하여 TIFF를 PSD로 내보냅니다.
다음 코드 샘플은 C#을 사용하여 클리핑 경로가 있는 TIFF 이미지를 PSD로 내보내는 방법을 보여줍니다.
using (var image = Image.Load(@"d:\Data\SampleWithPaths.tif"))
{
image.Save(@"d:\Data\SampleWithPaths.psd", new PsdOptions());
}
PSD 파일
결론
이 기사에서는 C#을 사용하여 프로그래밍 방식으로 TIFF 이미지에서 클리핑 경로를 만드는 방법을 살펴보았습니다. 또한 Aspose.Imaging for .NET API를 사용하여 클리핑 경로와 함께 TIFF 이미지를 PSD로 내보내는 방법도 배웠습니다. 문서를 사용하여 Aspose의 이미지 처리 API에 대해 자세히 알아볼 수 있습니다.